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

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
push edi
mov edi, eax
mov esi, dword [edi]
mov eax, esi
shr eax, 0xd
and eax, 0x1f
xor edx, edx
mov ebp, 0x18
div ebp
mov eax, dword [esp + 0x7c]
mov dword [eax], esi
mov esi, dword [edi + 4]
xor ecx, ecx
mov dword [eax + 4], esi
add eax, 0x10
lea ebx, [ecx + 1]
mov dword [esp + 0x14], 0x3020100
mov dword [esp + 0x18], 0x2030100
mov dword [esp + 0x1c], 0x3010200
mov dword [esp + 0x20], 0x1030200
mov dword [esp + 0x24], 0x2010300
mov dword [esp + 0x28], 0x1020300
mov dword [esp + 0x2c], 0x3020001
mov dword [esp + 0x30], 0x2030001
mov dword [esp + 0x34], 0x3000201
mov dword [esp + 0x38], 0x30201
mov dword [esp + 0x3c], 0x2000301
mov dword [esp + 0x40], 0x20301
mov dword [esp + 0x44], 0x3010002
mov dword [esp + 0x48], 0x1030002
mov dword [esp + 0x4c], 0x3000102
mov dword [esp + 0x50], 0x30102
mov dword [esp + 0x54], 0x1000302
mov dword [esp + 0x58], 0x10302
mov dword [esp + 0x5c], 0x2010003
mov dword [esp + 0x60], 0x1020003
mov dword [esp + 0x64], 0x2000103
mov dword [esp + 0x68], 0x20103
mov dword [esp + 0x6c], 0x1000203
mov dword [esp + 0x70], 0x10203
mov dword [esp + 0x10], eax
mov esi, eax
lea edx, [esp + edx*4 + 0x14]
lea ebx, [ebx]
movsx eax, byte [edx + ecx]
add eax, eax
add eax, eax
add eax, eax
mov ebp, dword [edi + eax*4 + 8]
mov dword [esi - 8], ebp
mov ebp, dword [edi + eax*4 + 0xc]
mov dword [esi - 4], ebp
mov ebp, dword [edi + eax*4 + 0x10]
mov dword [esi], ebp
mov ebp, dword [edi + eax*4 + 0x14]
mov dword [esi + 4], ebp
mov ebp, dword [edi + eax*4 + 0x18]
mov dword [esi + 8], ebp
mov ebp, dword [edi + eax*4 + 0x1c]
mov dword [esi + 0xc], ebp
mov ebp, dword [edi + eax*4 + 0x20]
mov dword [esi + 0x10], ebp
mov eax, dword [edi + eax*4 + 0x24]
mov dword [esi + 0x14], eax
add ecx, ebx
add esi, 0x20
cmp ecx, 4
jl 0x437a90
mov ecx, dword [esp + 0x10]
movzx eax, word [edi + 6]
mov dword [esp + 0x10], 8
jmp 0x437af0
imul eax, eax, 0x41c64e6d
mov edx, dword [ecx - 8]
add eax, 0x6073
mov ebp, eax
imul eax, eax, 0x41c64e6d
movzx esi, dx
add eax, 0x6073
xor edx, eax
imul eax, eax, 0x41c64e6d
and edx, 0xffff0000
shr ebp, 0x10
xor esi, ebp
or edx, esi
mov dword [ecx - 8], edx
lea edx, [eax + 0x6073]
mov eax, dword [ecx - 4]
mov ebp, edx
imul edx, edx, 0x41c64e6d
add edx, 0x6073
movzx esi, ax
xor eax, edx
imul edx, edx, 0x41c64e6d
add edx, 0x6073
shr ebp, 0x10
xor esi, ebp
mov ebp, edx
imul edx, edx, 0x41c64e6d
and eax, 0xffff0000
or eax, esi
mov dword [ecx - 4], eax
mov eax, dword [ecx]
add edx, 0x6073
movzx esi, ax
xor eax, edx
imul edx, edx, 0x41c64e6d
shr ebp, 0x10
xor esi, ebp
and eax, 0xffff0000
or eax, esi
mov dword [ecx], eax
lea eax, [edx + 0x6073]
mov edx, dword [ecx + 4]
mov ebp, eax
imul eax, eax, 0x41c64e6d
movzx esi, dx
add eax, 0x6073
xor edx, eax
shr ebp, 0x10
xor esi, ebp
and edx, 0xffff0000
or edx, esi
mov dword [ecx + 4], edx
add ecx, 0x10
sub dword [esp + 0x10], ebx
jne 0x437af0
mov eax, dword [edi]
xor ecx, ecx
cmp dword [esp + 0x78], 3
mov dword [0x52bb6c], eax
setl cl
lea ecx, [ecx*4 + 0x15]
add ecx, 0x22
cmp ecx, 0x22
jbe 0x437c2e
mov ebp, dword [esp + 0x7c]
sub ebp, edi
add ecx, 0xffffffde
lea esi, [edi + 0x88]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esi]
imul eax, eax, 0x41c64e6d
add eax, 0x6073
mov edi, eax
imul eax, eax, 0x41c64e6d
movzx edx, cx
add eax, 0x6073
xor ecx, eax
shr edi, 0x10
xor edx, edi
and ecx, 0xffff0000
or ecx, edx
mov dword [esi + ebp], ecx
add esi, 4
sub dword [esp + 0x7c], ebx
jne 0x437bf1
mov dword [0x52bb6c], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret