Function at 0x10047620
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xf0
mov eax, dword [esp + 0xf4]
push ebx
push ebp
push esi
push edi
lea edi, [eax + 0x40]
lea esi, [esp + 0x40]
lea ebx, [esp + 0x44]
xor edx, edx
sub esi, edi
mov dword [esp + 0x38], edi
lea ecx, [edi + 8]
sub ebx, edi
lea esp, [esp]
mov ebp, dword [ecx - 8]
mov dword [esp + edx*4 + 0x40], ebp
mov ebp, dword [ecx - 4]
mov dword [esp + edx*4 + 0x44], ebp
mov ebp, dword [ecx]
mov dword [esi + ecx], ebp
mov ebp, dword [ecx + 4]
mov dword [ebx + ecx], ebp
add edx, 4
add ecx, 0x10
cmp edx, 0x10
jl 0x10047650
mov esi, dword [esp + 0x10c]
sub esi, 0x10
js 0x100478a1
lea ecx, [esp + 0x78]
sub ecx, eax
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x7c]
sub ecx, eax
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0xbc]
sub ecx, eax
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x108]
lea ecx, [esp + 0x80]
sub ecx, eax
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x40]
sub ecx, eax
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0xc0]
sub ecx, eax
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x84]
sub ecx, eax
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x44]
sub ecx, eax
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0xc4]
sub ecx, eax
mov dword [esp + 0x30], ecx
lea edi, [esp + 0xb8]
lea ecx, [esi + 0x10]
sub edi, eax
add edx, 1
shr ecx, 4
mov dword [esp + 0x14], ecx
jmp 0x10047717
mov eax, dword [esp + 0x104]
mov ebx, dword [eax + 0x3c]
lea esi, [esp + 0x44]
add eax, 8
mov dword [esp + 0x10], 4
lea esp, [esp]
movzx ecx, byte [edx - 1]
mov ebp, dword [esp + 0x2c]
mov dword [eax + ebp], ecx
mov ebp, dword [esi - 4]
xor ebp, ecx
xor ecx, ebx
mov ecx, dword [ecx*4 + str._.C]
xor dword [eax - 8], ecx
movzx ecx, byte [edx]
mov ebx, dword [esp + 0x3c]
mov dword [ebx + eax], ecx
mov ebx, dword [esi]
xor ebx, ecx
mov dword [edi + eax], ebp
mov ebp, dword [esp + 0x24]
mov dword [eax + ebp], ebx
mov ebx, dword [eax - 8]
mov ebp, dword [esp + 0x1c]
xor ebx, ecx
mov ecx, dword [ebx*4 + str._.C]
xor dword [eax - 4], ecx
movzx ecx, byte [edx + 1]
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax], ecx
mov ebx, dword [esp + 0x18]
mov ebx, dword [ebx + eax]
xor ebx, ecx
mov dword [eax + ebp], ebx
mov ebx, dword [eax - 4]
mov ebp, dword [esp + 0x30]
xor ebx, ecx
mov ecx, dword [ebx*4 + str._.C]
xor dword [eax], ecx
movzx ecx, byte [edx + 2]
mov ebx, dword [esp + 0x20]
mov dword [ebx + eax], ecx
mov ebx, dword [esp + 0x28]
mov ebx, dword [ebx + eax]
xor ebx, ecx
mov dword [eax + ebp], ebx
mov ebx, dword [eax]
xor ebx, ecx
mov ecx, dword [ebx*4 + str._.C]
xor dword [eax + 4], ecx
mov ebx, dword [eax + 4]
mov ebp, 1
add edx, 4
add esi, 0x10
add eax, 0x10
sub dword [esp + 0x10], ebp
jne 0x10047730
xor ecx, ecx
xor esi, esi
jmp 0x100477f0
xor eax, eax
jmp 0x10047800
mov ecx, dword [ecx*4 + str._.C]
xor dword [esp + eax*4 + 0x40], ecx
mov ecx, dword [esp + eax*4 + 0x40]
mov ecx, dword [ecx*4 + str._.C]
xor dword [esp + eax*4 + 0x44], ecx
mov ecx, dword [esp + eax*4 + 0x44]
mov ecx, dword [ecx*4 + str._.C]
xor dword [esp + eax*4 + 0x48], ecx
mov ecx, dword [esp + eax*4 + 0x48]
mov ecx, dword [ecx*4 + str._.C]
xor dword [esp + eax*4 + 0x4c], ecx
mov ecx, dword [esp + eax*4 + 0x4c]
mov ecx, dword [ecx*4 + str._.C]
xor dword [esp + eax*4 + 0x50], ecx
mov ecx, dword [esp + eax*4 + 0x50]
mov ecx, dword [ecx*4 + str._.C]
xor dword [esp + eax*4 + 0x54], ecx
mov ecx, dword [esp + eax*4 + 0x54]
mov ecx, dword [ecx*4 + str._.C]
xor dword [esp + eax*4 + 0x58], ecx
mov ecx, dword [esp + eax*4 + 0x58]
mov ecx, dword [ecx*4 + str._.C]
xor dword [esp + eax*4 + 0x5c], ecx
mov ecx, dword [esp + eax*4 + 0x5c]
add eax, 8
cmp eax, 0x30
jl 0x10047800
add ecx, esi
add esi, ebp
and ecx, 0xff
cmp esi, 0x12
jl 0x100477f0
sub dword [esp + 0x14], ebp
jne 0x10047710
mov edi, dword [esp + 0x38]
mov ecx, 0x10
lea esi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xf0
ret