Function at 0x10004633
Capabilities:
Access peb ldr_data
Encode data using xor

Disassembly:
push 0x50
mov eax, 0x1000d9e6
call fcn.1000d213
mov eax, dword [ebp + 8]
mov dword [ebp - 0x5c], eax
xor esi, esi
mov ecx, 0x4e5e7cf7
mov dword [ebp - 4], esi
mov eax, dword fs:[0x18]
cmp dword [ebp + 0x28], 8
push 2
pop ebx
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], esi
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x14], 0x4e5e7ccb
mov dword [ebp - 0x10], 0x5328a69f
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
mov edx, dword [eax + 0x10]
lea eax, [ebp + 0x14]
cmovae eax, dword [ebp + 0x14]
mov dword [ebp - 0x58], eax
mov eax, esi
mov dword [ebp - 0x48], edx
xor dword [ebp + eax*4 - 0x14], ecx
inc eax
cmp eax, dword [ebp - 0x1c]
jae 0x100046a1
mov ecx, dword [ebp - 0x20]
jmp 0x10004692
mov eax, dword [ebp - 0x18]
mov ecx, 0x5cbcf9ef
mov eax, dword [ebp + eax*4 - 0x14]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], esi
mov edi, dword [edx + eax]
mov eax, esi
mov dword [ebp - 0x14], 0x5cbcf997
mov dword [ebp - 0x10], 0x61872397
xor dword [ebp + eax*4 - 0x14], ecx
inc eax
cmp eax, dword [ebp - 0x1c]
jae 0x100046d8
mov ecx, dword [ebp - 0x20]
jmp 0x100046c9
mov eax, dword [ebp - 0x18]
mov ecx, 0x6b1b76e7
mov eax, dword [ebp + eax*4 - 0x14]
add eax, edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], 0x6b1b76c7
mov edi, dword [eax + edx]
mov eax, esi
add edi, edx
mov dword [ebp - 0x10], 0x6fe5a08f
mov dword [ebp - 0x4c], edi
xor dword [ebp + eax*4 - 0x14], ecx
inc eax
cmp eax, dword [ebp - 0x1c]
jae 0x10004716
mov ecx, dword [ebp - 0x20]
jmp 0x10004707
mov eax, dword [ebp - 0x18]
mov ecx, 0x7979f3df
mov eax, dword [ebp + eax*4 - 0x14]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], esi
mov eax, dword [eax + edi]
add eax, edx
mov dword [ebp - 0x14], 0x7979f3c3
mov dword [ebp - 0x40], eax
mov eax, esi
mov dword [ebp - 0x10], 0x7e441d87
xor dword [ebp + eax*4 - 0x14], ecx
inc eax
cmp eax, dword [ebp - 0x1c]
jae 0x10004752
mov ecx, dword [ebp - 0x20]
jmp 0x10004743
mov eax, dword [ebp - 0x18]
mov ecx, 0x47d870d6
mov eax, dword [ebp + eax*4 - 0x14]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], 2
mov dword [ebp - 0x18], esi
mov ebx, dword [eax + edi]
mov eax, esi
add ebx, edx
mov dword [ebp - 0x14], 0x47d870f2
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x10], 0x4ca29a7e
xor dword [ebp + eax*4 - 0x14], ecx
inc eax
cmp eax, dword [ebp - 0x1c]
jae 0x10004792
mov ecx, dword [ebp - 0x20]
jmp 0x10004783
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x14]
mov eax, dword [eax + edi]
add eax, edx
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x40], esi
je 0x1000486b
test ebx, ebx
je 0x1000486b
test eax, eax
je 0x1000486b
mov ebx, esi
mov ecx, 0x5636edce
mov dword [ebp - 0x1c], 2
mov dword [ebp - 0x20], ecx
mov eax, esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], 0x5636edd6
mov dword [ebp - 0x10], 0x5b011776
xor dword [ebp + eax*4 - 0x14], ecx
inc eax
cmp eax, dword [ebp - 0x1c]
jae 0x100047ed
mov ecx, dword [ebp - 0x20]
jmp 0x100047de
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x14]
cmp ebx, dword [edi + eax]
jae 0x1000486b
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + ebx*4]
add eax, edx
mov ecx, eax
mov dword [ebp - 0x44], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x3c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1000480c
sub ecx, dword [ebp - 0x3c]
push 0x1d
lea eax, [ecx + 1]
mov ecx, esi
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
pop eax
mov dword [ebp - 0x38], eax
jbe 0x10004854
mov edi, dword [ebp - 0x44]
mov edx, eax
mov esi, dword [ebp - 0x3c]
movsx eax, byte [ecx + edi]
xor eax, edx
imul edx, eax, 5
inc ecx
cmp ecx, esi
jb 0x10004832
mov edi, dword [ebp - 0x4c]
xor esi, esi
mov dword [ebp - 0x38], edx
cmp dword [ebp - 0x38], 0xeb461b5b
mov edx, dword [ebp - 0x48]
je 0x1000485a
inc ebx
jmp 0x100047bc
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x54]
movzx eax, word [eax + ebx*2]
mov eax, dword [ecx + eax*4]
add eax, edx
jmp 0x1000486d
mov eax, esi
push dword [ebp - 0x58]
call eax
mov ecx, dword [ebp - 0x5c]
push 0x2e
mov dword [ebp - 0x44], eax
mov dword [ecx], eax
mov eax, esi
mov ecx, dword fs:[0x18]
mov ecx, dword [ecx + 0x30]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x14]
mov ecx, dword [ecx]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 0x10]
pop ecx
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 0x20], cl
mov dword [ebp - 0x1c], 9
mov dword [ebp - 0x18], 0x715a4b5d
mov dword [ebp - 0x14], 0x465d4f46
mov byte [ebp - 0x10], cl
xor byte [ebp + eax - 0x18], cl
inc eax
cmp eax, dword [ebp - 0x1c]
jae 0x100048c3
mov cl, byte [ebp - 0x20]
jmp 0x100048b4
push 2
mov ecx, 0x4e5e7cf7
mov dword [ebp - 0x2c], esi
pop edi
mov dword [ebp - 0x34], ecx
mov eax, esi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x28], 0x4e5e7ccb
mov dword [ebp - 0x24], 0x5328a69f
xor dword [ebp + eax*4 - 0x28], ecx
inc eax
cmp eax, dword [ebp - 0x30]
jae 0x100048f3
mov ecx, dword [ebp - 0x34]
jmp 0x100048e4
mov eax, dword [ebp - 0x2c]
mov edx, 0x5cbcf9ef
mov eax, dword [ebp + eax*4 - 0x28]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], esi
mov ecx, dword [ebx + eax]
mov eax, esi
mov dword [ebp - 0x28], 0x5cbcf997
mov dword [ebp - 0x24], 0x61872397
xor dword [ebp + eax*4 - 0x28], edx
inc eax
cmp eax, dword [ebp - 0x30]
jae 0x1000492a
mov edx, dword [ebp - 0x34]
jmp 0x1000491b
mov eax, dword [ebp - 0x2c]
mov edx, 0x6b1b76e7
mov eax, dword [ebp + eax*4 - 0x28]
add eax, ebx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], 0x6b1b76c7
mov ecx, dword [eax + ecx]
mov eax, esi
add ecx, ebx
mov dword [ebp - 0x24], 0x6fe5a08f
mov dword [ebp - 0x5c], ecx
xor dword [ebp + eax*4 - 0x28], edx
inc eax
cmp eax, dword [ebp - 0x30]
jae 0x10004968
mov edx, dword [ebp - 0x34]
jmp 0x10004959
mov eax, dword [ebp - 0x2c]
mov edx, 0x7979f3df
mov eax, dword [ebp + eax*4 - 0x28]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], esi
mov eax, dword [eax + ecx]
add eax, ebx
mov dword [ebp - 0x28], 0x7979f3c3
mov dword [ebp - 0x3c], eax
mov eax, esi
mov dword [ebp - 0x24], 0x7e441d87
xor dword [ebp + eax*4 - 0x28], edx
inc eax
cmp eax, dword [ebp - 0x30]
jae 0x100049a4
mov edx, dword [ebp - 0x34]
jmp 0x10004995
mov eax, dword [ebp - 0x2c]
mov edi, 0x47d870d6
mov eax, dword [ebp + eax*4 - 0x28]
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], 2
mov dword [ebp - 0x2c], esi
mov edx, dword [eax + ecx]
mov eax, esi
add edx, ebx
mov dword [ebp - 0x28], 0x47d870f2
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x24], 0x4ca29a7e
xor dword [ebp + eax*4 - 0x28], edi
inc eax
cmp eax, dword [ebp - 0x30]
jae 0x100049e4
mov edi, dword [ebp - 0x34]
jmp 0x100049d5
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + eax*4 - 0x28]
mov edi, dword [eax + ecx]
add edi, ebx
cmp dword [ebp - 0x3c], 0
mov dword [ebp - 0x50], edi
je 0x10004abc
test edx, edx
je 0x10004abc
test edi, edi
je 0x10004abc
mov edx, esi
mov ecx, 0x5636edce
mov dword [ebp - 0x30], 2
mov dword [ebp - 0x34], ecx
mov eax, esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], 0x5636edd6
mov dword [ebp - 0x24], 0x5b011776
xor dword [ebp + eax*4 - 0x28], ecx
inc eax
cmp eax, dword [ebp - 0x30]
jae 0x10004a40
mov ecx, dword [ebp - 0x34]
jmp 0x10004a31
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp + eax*4 - 0x28]
cmp edx, dword [ecx + eax]
jae 0x10004abc
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + edx*4]
add eax, ebx
mov ecx, eax
mov dword [ebp - 0x54], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x58], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10004a62
sub ecx, dword [ebp - 0x58]
push 0x1d
lea eax, [ecx + 1]
mov ecx, esi
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
pop eax
mov dword [ebp - 0x38], eax
jbe 0x10004aaa
mov edi, dword [ebp - 0x54]
mov ebx, eax
mov esi, dword [ebp - 0x40]
movsx eax, byte [ecx + edi]
xor eax, ebx
imul ebx, eax, 5
inc ecx
cmp ecx, esi
jb 0x10004a88
mov edi, dword [ebp - 0x50]
xor esi, esi
mov dword [ebp - 0x38], ebx
cmp dword [ebp - 0x38], 0x52e8c03b
mov ebx, dword [ebp - 0x4c]
je 0x10004ab0
inc edx
jmp 0x10004a0f
movzx eax, word [edi + edx*2]
mov esi, dword [ebp - 0x48]
mov esi, dword [esi + eax*4]
add esi, ebx
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x44]
call esi
test eax, eax
je 0x10004ad3
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call eax
pop ecx
pop ecx
lea ecx, [ebp + 0x14]
call fcn.10008aeb
call fcn.1000d1e1
ret 0x24