Function at 0x478090
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x164
mov eax, dword [esp + 0x170]
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 ebp, dword [edi + 0x10]
cdq
sub eax, edx
mov dword [esp + 0x18], ecx
sar eax, 1
add ecx, eax
mov eax, dword [edi + 0x18]
sub eax, ebp
mov dword [esp + 0x38], ecx
cdq
sub eax, edx
sar eax, 1
add esi, eax
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x17c]
mov bp, word [esi]
push ebp
call fcn.0046d460
mov dword [esp + 0x4c], eax
mov eax, ebp
and eax, 0xffff
add esp, 4
dec eax
cmp eax, 0x17
ja case.default.0x478108
xor ecx, ecx
mov cl, byte [eax + 0x478b54]
jmp dword [ecx*4 + 0x478b28]
mov eax, dword [esp + 0x184]
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]
mov ecx, dword [esp + 0x40]
pop ebp
mov dword [edx*8 + 0x58ea8c], eax
pop ebx
lea eax, [ecx + 1]
add esp, 0x164
ret 0x14
xor ecx, ecx
xor edx, edx
mov cx, word [esi + 2]
mov dx, word [esi + 4]
mov dword [esp + 0xbc], ecx
lea eax, [esp + 0x18]
mov dword [esp + 0xc0], edx
lea ecx, [esp + 0xbc]
push eax
lea edx, [esp + 0x14]
push ecx
push edx
mov ecx, edi
call fcn.004727c0
xor eax, eax
xor ecx, ecx
mov ax, word [esi + 6]
mov cx, word [esi + 8]
mov dword [esp + 0x94], eax
lea edx, [esp + 0x18]
mov dword [esp + 0x98], ecx
lea eax, [esp + 0x94]
push edx
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, edi
call fcn.004727c0
mov edx, dword [edi + 0x24]
lea eax, [esp + 0x10]
push edx
lea ecx, [esp + 0x3c]
push eax
push ecx
call fcn.00469ae0
mov edx, dword [edi + 0x24]
lea eax, [esp + 0x4c]
push edx
lea ecx, [esp + 0x48]
push eax
push ecx
call fcn.00469ae0
add esp, 0x18
cmp bp, 1
je 0x478244
mov eax, dword [esp + 0x188]
test eax, eax
je case.default.0x478108
cmp eax, 1
jne 0x478244
mov edx, dword [edi + 0x38]
xor eax, eax
mov ax, word [esi + 0xa]
push edx
mov ecx, eax
push 1
and ecx, 1
push 1
shr eax, 1
push ecx
push 1
and eax, 1
push 1
push eax
mov ecx, edi
call fcn.00475500
mov edx, dword [edi + 0x30]
push eax
lea eax, [esp + 0x60]
push edx
mov edx, dword [esp + 0x19c]
lea ecx, [esp + 0x34]
push eax
push ecx
push edx
call fcn.0046b230
mov ecx, dword [esp + 0x78]
add esp, 0x30
pop edi
pop esi
pop ebp
lea eax, [ecx + 1]
pop ebx
add esp, 0x164
ret 0x14
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x178]
push eax
lea edx, [esp + 0xe8]
push ecx
push edx
mov ecx, esi
call fcn.004b7cca
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push eax
push ecx
mov ecx, esi
call fcn.004b7d16
mov ecx, dword [esp + 0x48]
pop edi
pop esi
pop ebp
lea eax, [ecx + 1]
pop ebx
add esp, 0x164
ret 0x14
cmp dword [esp + 0x188], 2
jne case.0x478108.2
mov ebp, 3
mov ax, word [esi + 2]
cmp ax, 0xffff
jne 0x4782c0
xor edx, edx
mov dx, word [esi + 4]
mov eax, dword [edx*8 + 0x58ea88]
mov dword [esp + 0x10], eax
mov ecx, dword [edx*8 + 0x58ea8c]
mov dword [esp + 0x14], ecx
jmp 0x478302
and eax, 0xffff
xor edx, edx
mov dx, word [esi + 4]
mov dword [esp + 0xcc], eax
lea eax, [esp + 0x18]
mov dword [esp + 0xd0], edx
lea ecx, [esp + 0xcc]
push eax
lea edx, [esp + 0x170]
push ecx
push edx
mov ecx, edi
call fcn.004727c0
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x14], edx
cmp bp, 0x17
jne 0x478318
mov eax, dword [esp + 0x184]
mov ecx, dword [eax + 4]
mov dword [esp + 0x14], ecx
jmp 0x47832b
cmp bp, 0x18
jne 0x47832b
mov edx, dword [esp + 0x184]
mov eax, dword [edx]
mov dword [esp + 0x10], eax
mov ecx, dword [edi + 0x24]
lea edx, [esp + 0x10]
push ecx
lea eax, [esp + 0x3c]
push edx
push eax
call fcn.00469ae0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add esp, 0xc
cmp bp, 3
push ecx
push edx
jne 0x478596
mov ecx, dword [esp + 0x180]
lea eax, [esp + 0xdc]
push eax
call fcn.004b7cca
mov ecx, dword [esp + 0x48]
pop edi
pop esi
pop ebp
lea eax, [ecx + 1]
pop ebx
add esp, 0x164
ret 0x14
xor eax, eax
xor ecx, ecx
mov ax, word [esi + 2]
mov cx, word [esi + 4]
xor edx, edx
mov dword [esp + 0x20], eax
mov dx, word [esi + 6]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
xor eax, eax
mov ax, word [esi + 8]
xor ecx, ecx
mov cx, word [esi + 0xa]
xor edx, edx
mov dx, word [esi + 0xc]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
lea esi, [esp + 0x20]
mov ebx, 3
lea eax, [esp + 0x18]
lea ecx, [esp + 0x164]
push eax
push esi
push ecx
mov ecx, edi
call fcn.004727c0
mov edx, dword [eax]
mov ecx, dword [edi + 0x24]
mov dword [esi], edx
push ecx
mov eax, dword [eax + 4]
lea edx, [esp + 0x3c]
push esi
push edx
mov dword [esi + 4], eax
call fcn.00469ae0
add esp, 0xc
add esi, 8
dec ebx
jne 0x4783c2
mov eax, dword [esp + 0x188]
cmp eax, 2
jne 0x47843d
cmp bp, 6
jne 0x47843d
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push eax
lea edx, [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x180]
push edx
call fcn.004b7cca
mov ecx, dword [esp + 0x48]
pop edi
pop esi
pop ebp
lea eax, [ecx + 1]
pop ebx
add esp, 0x164
ret 0x14
xor ecx, ecx
cmp eax, 2
mov eax, dword [esp + 0x178]
lea edx, [esp + 0x20]
sete cl
push ecx
push 3
push edx
push eax
call fcn.0046c780
jmp 0x478b0f
xor ecx, ecx
xor edx, edx
mov cx, word [esi + 6]
mov dx, word [esi + 8]
mov dword [esp + 0x64], ecx
lea eax, [esp + 0x18]
mov dword [esp + 0x68], edx
lea ecx, [esp + 0x64]
push eax
lea edx, [esp + 0x138]
push ecx
push edx
mov ecx, edi
call fcn.004727c0
mov ebx, dword [eax]
xor ecx, ecx
mov cx, word [esi + 2]
xor edx, edx
mov eax, dword [eax + 4]
mov dx, word [esi + 4]
mov dword [esp + 0x44], eax
mov dword [esp + 0xb4], ecx
lea eax, [esp + 0x18]
mov dword [esp + 0xb8], edx
lea ecx, [esp + 0xb4]
push eax
lea edx, [esp + 0x108]
push ecx
push edx
mov ecx, edi
call fcn.004727c0
mov ecx, eax
mov edx, dword [esp + 0x44]
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], edx
call fcn.004baa81
xor eax, eax
xor ecx, ecx
mov ax, word [esi + 0xa]
mov cx, word [esi + 0xc]
mov dword [esp + 0x74], eax
lea edx, [esp + 0x18]
mov dword [esp + 0x78], ecx
lea eax, [esp + 0x74]
push edx
lea ecx, [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.004727c0
lea edx, [esp + 0x10]
lea eax, [esp + 0x20]
push edx
lea ecx, [esp + 0x158]
push eax
push ecx
call fcn.00469d20
mov edx, eax
add esp, 0xc
cmp bp, 0x16
mov eax, dword [edx]
mov dword [esp + 0x10], eax
mov ecx, dword [edx + 4]
mov dword [esp + 0x14], ecx
jne 0x478570
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
mov ecx, dword [esp + 0x38]
lea eax, [ecx + 1]
add esp, 0x164
ret 0x14
mov eax, dword [edi + 0x24]
lea ecx, [esp + 0x10]
push eax
lea edx, [esp + 0x3c]
push ecx
push edx
call fcn.00469ae0
add esp, 0xc
cmp bp, 0xf
jne 0x4785b6
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push eax
push ecx
mov ecx, dword [esp + 0x180]
call fcn.004b7d16
mov ecx, dword [esp + 0x48]
pop edi
pop esi
pop ebp
lea eax, [ecx + 1]
pop ebx
add esp, 0x164
ret 0x14
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
lea ecx, [esp + 0x118]
push eax
push ecx
mov ecx, dword [esp + 0x184]
call fcn.004b7cca
mov ecx, dword [esp + 0x48]
pop edi
pop esi
pop ebp
lea eax, [ecx + 1]
pop ebx
add esp, 0x164
ret 0x14
xor edx, edx
xor eax, eax
mov dx, word [esi + 6]
mov ax, word [esi + 8]
mov dword [esp + 0xa4], edx
lea ecx, [esp + 0x18]
mov dword [esp + 0xa8], eax
lea edx, [esp + 0xa4]
push ecx
lea eax, [esp + 0x148]
push edx
push eax
mov ecx, edi
call fcn.004727c0
mov ebx, dword [eax]
xor edx, edx
mov dx, word [esi + 2]
mov ecx, dword [eax + 4]
xor eax, eax
mov ax, word [esi + 4]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x84], edx
lea ecx, [esp + 0x18]
mov dword [esp + 0x88], eax
lea edx, [esp + 0x84]
push ecx
lea eax, [esp + 0x128]
push edx
push eax
mov ecx, edi
call fcn.004727c0
mov ecx, eax
mov edx, dword [esp + 0x44]
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], edx
call fcn.004baa81
mov ecx, dword [edi + 4]
xor eax, eax
cmp bp, 0x11
setne al
test ecx, 0x4000000
je 0x47869e
xor edx, edx
test eax, eax
sete dl
mov eax, edx
test ecx, 0x8000000
je 0x4786af
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
cmp bp, 0x10
je 0x478791
cmp bp, 0x11
je 0x478791
cmp bp, 0x12
jne 0x4786d0
mov ecx, 1
jmp 0x4786dc
xor ecx, ecx
cmp bp, 0x13
setne cl
add ecx, 2
xor edx, edx
mov ebx, dword [esp + 0x188]
mov dx, word [esi + 0xe]
mov dword [esp + 0xc4], edx
xor edx, edx
mov dx, word [esi + 0x10]
mov dword [esp + 0xc8], edx
xor edx, edx
mov dx, word [esi + 0xa]
mov dword [esp + 0x54], edx
xor edx, edx
mov dx, word [esi + 0xc]
mov dword [esp + 0x58], edx
xor edx, edx
cmp ebx, 2
sete dl
push edx
mov edx, dword [edi + 0x24]
push 0
push 0
push ecx
push eax
xor eax, eax
lea ecx, [esp + 0x2c]
mov ax, word [esi + 0x12]
add eax, edx
lea edx, [esp + 0xd8]
push eax
push ecx
lea eax, [esp + 0xf8]
push edx
push eax
mov ecx, edi
call fcn.004727c0
lea ecx, [esp + 0x30]
push eax
lea edx, [esp + 0x70]
push ecx
lea eax, [esp + 0x10c]
push edx
push eax
mov ecx, edi
call fcn.004727c0
lea ecx, [esp + 0x54]
push eax
mov eax, dword [esp + 0x198]
lea edx, [esp + 0x40]
push ecx
push edx
push eax
call fcn.0046bd90
mov ecx, dword [esp + 0x74]
add esp, 0x2c
pop edi
pop esi
pop ebp
lea eax, [ecx + 1]
pop ebx
add esp, 0x164
ret 0x14
mov ebp, dword [esp + 0x188]
xor ecx, ecx
mov cx, word [esi + 0xa]
xor edx, edx
mov dx, word [esi + 0xc]
mov dword [esp + 0x5c], ecx
xor ecx, ecx
cmp ebp, 2
sete cl
push ecx
push 0
push 0
mov dword [esp + 0x6c], edx
mov edx, dword [edi + 0x24]
push 0
push eax
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x74]
push eax
lea edx, [esp + 0x118]
push ecx
push edx
mov ecx, edi
call fcn.004727c0
push eax
mov eax, dword [esp + 0x1a0]
jmp 0x478762
xor ecx, ecx
xor edx, edx
mov cx, word [esi + 6]
mov dx, word [esi + 8]
mov dword [esp + 0x6c], ecx
lea eax, [esp + 0x18]
mov dword [esp + 0x70], edx
lea ecx, [esp + 0x6c]
push eax
lea edx, [esp + 0x110]
push ecx
push edx
mov ecx, edi
call fcn.004727c0
mov ebx, dword [eax]
xor ecx, ecx
mov cx, word [esi + 4]
lea edx, [esp + 0x18]
mov ebp, dword [eax + 4]
xor eax, eax
mov ax, word [esi + 2]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x7c]
push edx
lea ecx, [esp + 0x120]
push eax
push ecx
mov ecx, edi
call fcn.004727c0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 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 edx, dword [esp + 0x188]
mov ebx, dword [edi + 0x24]
xor eax, eax
cmp edx, 2
sete al
xor edx, edx
lea ecx, [esp + 0x38]
mov dx, word [esi + 0xa]
push eax
add edx, ebx
push ecx
mov ecx, dword [esp + 0x180]
lea eax, [esp + 0x28]
push edx
push eax
push ecx
call fcn.0046cf70
mov ecx, dword [esp + 0x5c]
add esp, 0x14
pop edi
pop esi
pop ebp
lea eax, [ecx + 1]
pop ebx
add esp, 0x164
ret 0x14
xor edx, edx
xor eax, eax
mov dx, word [esi + 6]
mov ax, word [esi + 8]
mov dword [esp + 0x8c], edx
lea ecx, [esp + 0x18]
mov dword [esp + 0x90], eax
lea edx, [esp + 0x8c]
push ecx
lea eax, [esp + 0x130]
push edx
push eax
mov ecx, edi
call fcn.004727c0
mov ebx, dword [eax]
xor edx, edx
mov dx, word [esi + 2]
mov ecx, dword [eax + 4]
xor eax, eax
mov ax, word [esi + 4]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x9c], edx
lea ecx, [esp + 0x18]
mov dword [esp + 0xa0], eax
lea edx, [esp + 0x9c]
push ecx
lea eax, [esp + 0x140]
push edx
push eax
mov ecx, edi
call fcn.004727c0
mov ecx, eax
mov edx, dword [esp + 0x44]
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], edx
call fcn.004baa81
mov eax, dword [edi + 0x14]
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
xor ebx, ebx
mov bx, word [esi + 0xa]
mov esi, dword [edi + 0x18]
sub eax, edx
push 0x1fff
push eax
push ebx
sub esi, ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
push 0x1fff
mov edx, eax
push esi
push ebx
mov dword [esp + 0x1c], edx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [esp + 0x10]
push 0x1fff
cmp ecx, eax
jge 0x478999
mov edx, dword [edi + 0x14]
mov esi, dword [edi + 0xc]
sub edx, esi
push edx
jmp 0x4789a2
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0x10]
sub eax, edx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_MulDiv]
cmp bp, 8
jne 0x4789f2
mov esi, dword [esp + 0x188]
xor ecx, ecx
cmp esi, 2
lea edx, [esp + 0x38]
sete cl
push ecx
mov ecx, dword [edi + 0x24]
push edx
push ecx
push eax
mov eax, dword [esp + 0x188]
lea edx, [esp + 0x30]
push edx
push eax
call fcn.0046c8f0
mov ecx, dword [esp + 0x60]
add esp, 0x18
pop edi
pop esi
pop ebp
lea eax, [ecx + 1]
pop ebx
add esp, 0x164
ret 0x14
cmp bp, 0xb
jne 0x478a2b
mov edx, dword [edi + 0x24]
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x17c]
push edx
push eax
lea eax, [esp + 0x2c]
push eax
push ecx
call fcn.0046cc90
mov ecx, dword [esp + 0x5c]
add esp, 0x14
pop edi
pop esi
pop ebp
lea eax, [ecx + 1]
pop ebx
add esp, 0x164
ret 0x14
mov ecx, dword [edi + 0x24]
lea edx, [esp + 0x38]
push edx
push ecx
push eax
mov eax, dword [esp + 0x184]
lea edx, [esp + 0x2c]
push edx
push eax
call fcn.0046cdc0
mov ecx, dword [esp + 0x5c]
add esp, 0x14
pop edi
pop esi
pop ebp
lea eax, [ecx + 1]
pop ebx
add esp, 0x164
ret 0x14
cmp dword [esp + 0x188], 2
jne case.default.0x478108
xor ecx, ecx
xor edx, edx
mov cx, word [esi + 6]
mov dx, word [esi + 8]
mov dword [esp + 0xac], ecx
lea eax, [esp + 0x18]
mov dword [esp + 0xb0], edx
lea ecx, [esp + 0xac]
push eax
lea edx, [esp + 0x150]
push ecx
push edx
mov ecx, edi
call fcn.004727c0
mov ebx, dword [eax]
xor ecx, ecx
mov cx, word [esi + 4]
lea edx, [esp + 0x18]
mov ebp, dword [eax + 4]
xor eax, eax
mov ax, word [esi + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x4c]
push edx
lea ecx, [esp + 0x160]
push eax
push ecx
mov ecx, edi
call fcn.004727c0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 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 + 0x24]
lea eax, [esp + 0x38]
push eax
mov eax, dword [esp + 0x17c]
lea edx, [esp + 0x24]
push ecx
push edx
push eax
call fcn.0046c890
add esp, 0x10
mov ecx, dword [esp + 0x48]
pop edi
pop esi
pop ebp
lea eax, [ecx + 1]
pop ebx
add esp, 0x164
ret 0x14