Function at 0x456160
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x84
mov edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
mov eax, dword [esp + 0xa8]
xor edx, edx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
movzx eax, byte [edi]
add eax, 0xffffff80
mov word [ecx], ax
movzx eax, byte [edi + 3]
add eax, 0xffffff80
mov word [ecx + 2], ax
movzx eax, byte [edi + 6]
add eax, 0xffffff80
mov word [ecx + 4], ax
movzx eax, byte [edi + 9]
add eax, 0xffffff80
mov word [ecx + 6], ax
movzx eax, byte [edi + 0xc]
add eax, 0xffffff80
mov word [ecx + 8], ax
movzx eax, byte [edi + 0xf]
add eax, 0xffffff80
mov word [ecx + 0xa], ax
movzx eax, byte [edi + 0x12]
add eax, 0xffffff80
mov word [ecx + 0xc], ax
movzx eax, byte [edi + 0x15]
add eax, 0xffffff80
mov word [ecx + 0xe], ax
movzx eax, byte [edi + 0x18]
add eax, 0xffffff80
mov word [ecx + 0x80], ax
movzx eax, byte [edi + 0x1b]
add eax, 0xffffff80
mov word [ecx + 0x82], ax
movzx eax, byte [edi + 0x1e]
add eax, 0xffffff80
mov word [ecx + 0x84], ax
movzx eax, byte [edi + 0x21]
add eax, 0xffffff80
mov word [ecx + 0x86], ax
movzx eax, byte [edi + 0x24]
add eax, 0xffffff80
mov word [ecx + 0x88], ax
movzx eax, byte [edi + 0x27]
add eax, 0xffffff80
mov word [ecx + 0x8a], ax
movzx eax, byte [edi + 0x2a]
add eax, 0xffffff80
mov word [ecx + 0x8c], ax
movzx eax, byte [edi + 0x2d]
add eax, 0xffffff80
mov word [ecx + 0x8e], ax
movzx eax, byte [edi + 1]
movzx edx, byte [edi + 4]
add eax, edx
movzx edx, byte [edi + 7]
movzx ebx, byte [edi + 0xa]
add edx, ebx
movzx ebp, byte [edi + 0xd]
movzx ebx, byte [edi + 0x10]
add ebp, ebx
movzx ebx, byte [edi + 0x16]
mov dword [esp + 0x10], ebp
movzx ebp, byte [edi + 0x13]
add ebp, ebx
mov dword [esp + 0x14], ebp
movzx ebp, byte [edi + 0x19]
movzx ebx, byte [edi + 0x1c]
add ebp, ebx
movzx ebx, byte [edi + 0x22]
mov dword [esp + 0x18], ebp
movzx ebp, byte [edi + 0x1f]
add ebp, ebx
mov dword [esp + 0x1c], ebp
movzx ebp, byte [edi + 0x25]
movzx ebx, byte [edi + 0x28]
add ebp, ebx
movzx ebx, byte [edi + 0x2e]
mov dword [esp + 0x20], ebp
movzx ebp, byte [edi + 0x2b]
add ebp, ebx
mov dword [esp + 0x24], ebp
movzx ebp, byte [edi + 2]
movzx ebx, byte [edi + 5]
add ebp, ebx
movzx ebx, byte [edi + 0xb]
mov dword [esp + 0x28], ebp
movzx ebp, byte [edi + 8]
add ebp, ebx
mov dword [esp + 0x2c], ebp
movzx ebp, byte [edi + 0xe]
movzx ebx, byte [edi + 0x11]
add ebp, ebx
movzx ebx, byte [edi + 0x17]
mov dword [esp + 0x30], ebp
movzx ebp, byte [edi + 0x14]
add ebp, ebx
mov dword [esp + 0x34], ebp
movzx ebp, byte [edi + 0x1a]
movzx ebx, byte [edi + 0x1d]
add ebp, ebx
movzx ebx, byte [edi + 0x23]
mov dword [esp + 0x38], ebp
movzx ebp, byte [edi + 0x20]
add ebp, ebx
mov dword [esp + 0x3c], ebp
movzx ebp, byte [edi + 0x26]
movzx ebx, byte [edi + 0x29]
add ebp, ebx
movzx ebx, byte [edi + 0x2f]
mov dword [esp + 0x40], ebp
movzx ebp, byte [edi + 0x2c]
add ebp, ebx
mov dword [esp + 0x44], ebp
add edi, dword [esp + 0x9c]
mov dword [esp + 0x48], edi
movzx ebx, byte [edi]
add ebx, 0xffffff80
mov word [ecx + 0x10], bx
movzx ebx, byte [edi + 3]
add ebx, 0xffffff80
mov word [ecx + 0x12], bx
movzx ebx, byte [edi + 6]
add ebx, 0xffffff80
mov word [ecx + 0x14], bx
movzx ebx, byte [edi + 9]
add ebx, 0xffffff80
mov word [ecx + 0x16], bx
movzx ebx, byte [edi + 0xc]
add ebx, 0xffffff80
mov word [ecx + 0x18], bx
movzx ebx, byte [edi + 0xf]
add ebx, 0xffffff80
mov word [ecx + 0x1a], bx
movzx ebx, byte [edi + 0x12]
add ebx, 0xffffff80
mov word [ecx + 0x1c], bx
movzx ebx, byte [edi + 0x15]
add ebx, 0xffffff80
mov word [ecx + 0x1e], bx
movzx ebx, byte [edi + 0x18]
add ebx, 0xffffff80
mov word [ecx + 0x90], bx
movzx ebx, byte [edi + 0x1b]
add ebx, 0xffffff80
mov word [ecx + 0x92], bx
movzx ebx, byte [edi + 0x1e]
add ebx, 0xffffff80
mov word [ecx + 0x94], bx
movzx ebx, byte [edi + 0x21]
add ebx, 0xffffff80
mov word [ecx + 0x96], bx
movzx ebx, byte [edi + 0x24]
add ebx, 0xffffff80
mov word [ecx + 0x98], bx
movzx ebx, byte [edi + 0x27]
add ebx, 0xffffff80
mov word [ecx + 0x9a], bx
movzx ebx, byte [edi + 0x2a]
add ebx, 0xffffff80
mov word [ecx + 0x9c], bx
movzx ebx, byte [edi + 0x2d]
add ebx, 0xffffff80
mov word [ecx + 0x9e], bx
movzx ebp, byte [edi + 1]
movzx ecx, byte [edi + 4]
add ebp, ecx
movzx ebx, byte [edi + 7]
movzx ecx, byte [edi + 0xa]
add ebx, ecx
movzx ecx, byte [edi + 0x10]
lea eax, [ebp + eax + 2]
mov dword [esp + 0x4c], ebx
movzx ebx, byte [edi + 0xd]
add ebx, ecx
mov dword [esp + 0x50], ebx
movzx ebx, byte [edi + 0x13]
movzx ecx, byte [edi + 0x16]
add ebx, ecx
movzx ecx, byte [edi + 0x1c]
sar eax, 2
mov dword [esp + 0x54], ebx
movzx ebx, byte [edi + 0x19]
add ebx, ecx
mov dword [esp + 0x58], ebx
movzx ebx, byte [edi + 0x1f]
movzx ecx, byte [edi + 0x22]
add ebx, ecx
movzx ecx, byte [edi + 0x28]
add eax, 0xffffff80
mov dword [esp + 0x5c], ebx
movzx ebx, byte [edi + 0x25]
add ebx, ecx
mov dword [esp + 0x60], ebx
movzx ebx, byte [edi + 0x2b]
movzx ecx, byte [edi + 0x2e]
add ebx, ecx
movzx ecx, byte [edi + 5]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x64], ebx
movzx ebx, byte [edi + 2]
add ebx, ecx
mov dword [esp + 0x68], ebx
movzx ebx, byte [edi + 8]
movzx ecx, byte [edi + 0xb]
add ebx, ecx
movzx ecx, byte [edi + 0x11]
mov dword [esp + 0x6c], ebx
movzx ebx, byte [edi + 0xe]
add ebx, ecx
mov dword [esp + 0x70], ebx
movzx ebx, byte [edi + 0x14]
movzx ecx, byte [edi + 0x17]
add ebx, ecx
movzx ecx, byte [edi + 0x1d]
mov dword [esp + 0x74], ebx
movzx ebx, byte [edi + 0x1a]
add ebx, ecx
mov dword [esp + 0x78], ebx
movzx ebx, byte [edi + 0x20]
movzx ecx, byte [edi + 0x23]
add ebx, ecx
movzx ecx, byte [edi + 0x26]
mov dword [esp + 0x7c], ebx
movzx ebx, byte [edi + 0x29]
add ecx, ebx
movzx ebx, byte [edi + 0x2c]
movzx edi, byte [edi + 0x2f]
add ebx, edi
mov word [esi], ax
mov eax, dword [esp + 0x4c]
lea eax, [eax + edx + 2]
sar eax, 2
add eax, 0xffffff80
mov edx, dword [esp + 0x10]
mov word [esi + 2], ax
mov eax, dword [esp + 0x50]
lea eax, [eax + edx + 2]
sar eax, 2
add eax, 0xffffff80
mov edx, dword [esp + 0x14]
mov word [esi + 4], ax
mov eax, dword [esp + 0x54]
lea eax, [eax + edx + 2]
sar eax, 2
add eax, 0xffffff80
mov edx, dword [esp + 0x18]
mov word [esi + 6], ax
mov eax, dword [esp + 0x58]
lea eax, [eax + edx + 2]
sar eax, 2
add eax, 0xffffff80
mov edx, dword [esp + 0x1c]
mov word [esi + 8], ax
mov eax, dword [esp + 0x5c]
lea eax, [eax + edx + 2]
sar eax, 2
add eax, 0xffffff80
mov edx, dword [esp + 0x20]
mov word [esi + 0xa], ax
mov eax, dword [esp + 0x60]
lea eax, [eax + edx + 2]
sar eax, 2
add eax, 0xffffff80
mov edx, dword [esp + 0x24]
mov word [esi + 0xc], ax
mov eax, dword [esp + 0x64]
lea eax, [eax + edx + 2]
sar eax, 2
add eax, 0xffffff80
mov edx, dword [esp + 0x28]
mov word [esi + 0xe], ax
mov eax, dword [esp + 0x68]
lea edx, [eax + edx + 2]
sar edx, 2
add edx, 0xffffff80
mov eax, dword [esp + 0xc]
mov word [eax], dx
mov edx, dword [esp + 0x6c]
lea edx, [edx + ebp + 2]
sar edx, 2
add edx, 0xffffff80
mov ebp, dword [esp + 0x30]
mov word [eax + 2], dx
mov edx, dword [esp + 0x70]
lea edx, [edx + ebp + 2]
sar edx, 2
add edx, 0xffffff80
mov ebp, dword [esp + 0x34]
mov word [eax + 4], dx
mov edx, dword [esp + 0x74]
lea edx, [edx + ebp + 2]
sar edx, 2
add edx, 0xffffff80
mov ebp, dword [esp + 0x38]
mov word [eax + 6], dx
mov edx, dword [esp + 0x78]
lea edx, [edx + ebp + 2]
sar edx, 2
add edx, 0xffffff80
mov ebp, dword [esp + 0x3c]
mov word [eax + 8], dx
mov edx, dword [esp + 0x7c]
lea edx, [edx + ebp + 2]
sar edx, 2
add edx, 0xffffff80
add esi, 0x10
mov word [eax + 0xa], dx
mov edx, dword [esp + 0x40]
lea edx, [ecx + edx + 2]
sar edx, 2
add edx, 0xffffff80
mov edi, dword [esp + 0x48]
mov word [eax + 0xc], dx
mov edx, dword [esp + 0x44]
lea edx, [ebx + edx + 2]
sar edx, 2
add edx, 0xffffff80
mov ecx, dword [esp + 8]
mov word [eax + 0xe], dx
add eax, 0x10
add ecx, 0x20
add edi, dword [esp + 0x9c]
mov edx, dword [esp + 4]
add edx, 2
mov dword [esp + 4], edx
cmp edx, 8
jl 0x456193
add esp, 0x84
pop ebx
pop ebp
pop esi
pop edi
ret