Function at 0x477be0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x98
mov eax, dword [esp + 0x9c]
push ebx
push ebp
push esi
mov edx, dword [eax + 4]
push edi
mov edi, ecx
mov dword [esp + 0x1c], edx
mov ecx, dword [eax]
mov esi, edx
mov eax, dword [edi + 0x14]
mov edx, dword [edi + 0xc]
sub eax, edx
mov dword [esp + 0x18], ecx
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x30], ecx
mov ecx, dword [edi + 0x10]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
add esi, eax
xor eax, eax
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0xb0]
mov ax, word [esi]
add eax, 0xfffffffd
cmp eax, 0x16
ja case.0x477c48.9
xor ecx, ecx
mov cl, byte [eax + 0x477fc4]
jmp dword [ecx*4 + 0x477fa8]
mov eax, dword [esp + 0xb4]
xor edx, edx
mov dx, word [esi + 2]
pop edi
mov ecx, dword [eax]
pop esi
mov dword [edx*8 + 0x58ea88], ecx
mov eax, dword [eax + 4]
pop ebp
pop ebx
mov dword [edx*8 + 0x58ea8c], eax
add esp, 0x98
ret 0xc
xor ecx, ecx
xor eax, eax
mov cx, word [esi + 2]
mov ax, word [esi + 4]
cmp ecx, 0xffff
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
jne 0x477ca8
mov ecx, dword [eax*8 + 0x58ea88]
mov eax, dword [eax*8 + 0x58ea8c]
jmp 0x477cca
lea ecx, [esp + 0x18]
lea edx, [esp + 0x10]
push ecx
lea eax, [esp + 0xa4]
push edx
push eax
mov ecx, edi
call fcn.004727c0
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 4]
mov si, word [esi]
cmp si, 0x17
jne 0x477ce9
mov edx, dword [esp + 0xb4]
pop edi
pop esi
pop ebp
mov dword [edx], ecx
pop ebx
add esp, 0x98
ret 0xc
cmp si, 0x18
jne 0x477d06
mov ecx, dword [esp + 0xb4]
pop edi
pop esi
pop ebp
mov dword [ecx + 4], eax
pop ebx
add esp, 0x98
ret 0xc
mov edx, dword [esp + 0xb4]
pop edi
pop esi
pop ebp
mov dword [edx], ecx
mov dword [edx + 4], eax
pop ebx
add esp, 0x98
ret 0xc
mov ebx, dword [esp + 0xb4]
xor edx, edx
mov dx, word [esi + 0xa]
lea ecx, [esp + 0x18]
mov dword [ebx], edx
xor eax, eax
mov ax, word [esi + 0xc]
push ecx
lea edx, [esp + 0x6c]
push ebx
push edx
mov ecx, edi
mov dword [ebx + 4], eax
call fcn.004727c0
mov ecx, dword [eax]
pop edi
mov dword [ebx], ecx
pop esi
mov edx, dword [eax + 4]
pop ebp
mov dword [ebx + 4], edx
pop ebx
add esp, 0x98
ret 0xc
xor eax, eax
xor ecx, ecx
mov ax, word [esi + 6]
mov cx, word [esi + 8]
mov dword [esp + 0x50], eax
lea edx, [esp + 0x18]
mov dword [esp + 0x54], ecx
lea eax, [esp + 0x50]
push edx
lea ecx, [esp + 0x7c]
push eax
push ecx
mov ecx, edi
call fcn.004727c0
mov ebx, dword [eax]
xor edx, edx
mov dx, word [esi + 2]
lea ecx, [esp + 0x18]
mov ebp, dword [eax + 4]
xor eax, eax
mov ax, word [esi + 4]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
lea edx, [esp + 0x58]
push ecx
lea eax, [esp + 0x9c]
push edx
push eax
mov ecx, edi
call fcn.004727c0
mov ecx, eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebp
call fcn.004baa81
xor edx, edx
xor eax, eax
mov dx, word [esi + 0xa]
mov ax, word [esi + 0xc]
mov dword [esp + 0x60], edx
lea ecx, [esp + 0x18]
mov dword [esp + 0x64], eax
lea edx, [esp + 0x60]
push ecx
lea eax, [esp + 0x14]
push edx
push eax
mov ecx, edi
call fcn.004727c0
lea ecx, [esp + 0x10]
lea edx, [esp + 0x20]
push ecx
lea eax, [esp + 0x8c]
push edx
push eax
call fcn.00469d20
mov ecx, eax
add esp, 0xc
cmp word [esi], 0x16
mov eax, dword [ecx]
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 4]
je 0x477e4a
mov edx, dword [esp + 0xb4]
pop edi
pop esi
pop ebp
mov dword [edx], eax
mov dword [edx + 4], ecx
pop ebx
add esp, 0x98
ret 0xc
xor edx, edx
pop edi
mov dx, word [esi + 0xe]
pop esi
pop ebp
pop ebx
mov dword [edx*8 + 0x58ea88], eax
mov dword [edx*8 + 0x58ea8c], ecx
add esp, 0x98
ret 0xc
xor eax, eax
xor ecx, ecx
mov ax, word [esi + 6]
mov cx, word [esi + 8]
mov dword [esp + 0x48], eax
lea edx, [esp + 0x18]
mov dword [esp + 0x4c], ecx
lea eax, [esp + 0x48]
push edx
lea ecx, [esp + 0x74]
push eax
push ecx
mov ecx, edi
call fcn.004727c0
mov ebx, dword [eax]
xor edx, edx
mov dx, word [esi + 2]
lea ecx, [esp + 0x18]
mov ebp, dword [eax + 4]
xor eax, eax
mov ax, word [esi + 4]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
lea edx, [esp + 0x38]
push ecx
lea eax, [esp + 0x84]
push edx
push eax
mov ecx, edi
call fcn.004727c0
mov ecx, eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebp
call fcn.004baa81
mov ecx, dword [edi + 4]
xor eax, eax
cmp word [esi], 0x11
setne al
test ecx, 0x4000000
je 0x477f04
xor edx, edx
test eax, eax
sete dl
mov eax, edx
test ecx, 0x8000000
je 0x477f15
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
mov ecx, dword [esp + 0xb4]
push 0
push ecx
push 0
mov edx, dword [ecx]
push 0
mov dword [esp + 0x20], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x24], edx
xor edx, edx
mov dx, word [esi + 0xa]
push eax
mov dword [esp + 0x54], edx
xor edx, edx
mov dx, word [esi + 0xc]
lea eax, [esp + 0x2c]
mov dword [esp + 0x58], edx
push 0
lea ecx, [esp + 0x58]
push eax
lea edx, [esp + 0xac]
push ecx
push edx
mov ecx, edi
call fcn.004727c0
push eax
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x4c]
push eax
lea edx, [esp + 0x40]
push ecx
push edx
push 0
call fcn.0046bd90
add esp, 0x2c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret 0xc
mov eax, dword [esp + 0xb4]
mov dword [eax + 4], 0
mov dword [eax], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret 0xc