Function at 0x46b650
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.00460a30
mov dword [esp + 0x4c], eax
mov eax, ebp
and eax, 0xffff
add esp, 4
dec eax
cmp eax, 0x17
ja case.default.0x46b6c8
xor ecx, ecx
mov cl, byte [eax + 0x46c114]
jmp dword [ecx*4 + 0x46c0e8]
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 + 0x529a38], ecx
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x40]
pop ebp
mov dword [edx*8 + 0x529a3c], 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.00465d70
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.00465d70
mov edx, dword [edi + 0x24]
lea eax, [esp + 0x10]
push edx
lea ecx, [esp + 0x3c]
push eax
push ecx
call fcn.0045d0a0
mov edx, dword [edi + 0x24]
lea eax, [esp + 0x4c]
push edx
lea ecx, [esp + 0x48]
push eax
push ecx
call fcn.0045d0a0
add esp, 0x18
cmp bp, 1
je 0x46b804
mov eax, dword [esp + 0x188]
test eax, eax
je case.default.0x46b6c8
cmp eax, 1
jne 0x46b804
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.00468a80
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.0045e7e0
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.004b7fd3
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push eax
push ecx
mov ecx, esi
call fcn.004b801f
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.0x46b6c8.2
mov ebp, 3
mov ax, word [esi + 2]
cmp ax, 0xffff
jne 0x46b880
xor edx, edx
mov dx, word [esi + 4]
mov eax, dword [edx*8 + 0x529a38]
mov dword [esp + 0x10], eax
mov ecx, dword [edx*8 + 0x529a3c]
mov dword [esp + 0x14], ecx
jmp 0x46b8c2
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.00465d70
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x14], edx
cmp bp, 0x17
jne 0x46b8d8
mov eax, dword [esp + 0x184]
mov ecx, dword [eax + 4]
mov dword [esp + 0x14], ecx
jmp 0x46b8eb
cmp bp, 0x18
jne 0x46b8eb
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.0045d0a0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add esp, 0xc
cmp bp, 3
push ecx
push edx
jne 0x46bb56
mov ecx, dword [esp + 0x180]
lea eax, [esp + 0xdc]
push eax
call fcn.004b7fd3
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.00465d70
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.0045d0a0
add esp, 0xc
add esi, 8
dec ebx
jne 0x46b982
mov eax, dword [esp + 0x188]
cmp eax, 2
jne 0x46b9fd
cmp bp, 6
jne 0x46b9fd
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.004b7fd3
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.0045fd30
jmp 0x46c0cf
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.00465d70
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.00465d70
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.004baecc
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.00465d70
lea edx, [esp + 0x10]
lea eax, [esp + 0x20]
push edx
lea ecx, [esp + 0x158]
push eax
push ecx
call fcn.0045d2e0
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 0x46bb30
xor edx, edx
pop edi
mov dx, word [esi + 0xe]
pop esi
pop ebp
pop ebx
mov dword [edx*8 + 0x529a38], eax
mov dword [edx*8 + 0x529a3c], 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.0045d0a0
add esp, 0xc
cmp bp, 0xf
jne 0x46bb76
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push eax
push ecx
mov ecx, dword [esp + 0x180]
call fcn.004b801f
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.004b7fd3
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.00465d70
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.00465d70
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.004baecc
mov ecx, dword [edi + 4]
xor eax, eax
cmp bp, 0x11
setne al
test ecx, 0x4000000
je 0x46bc5e
xor edx, edx
test eax, eax
sete dl
mov eax, edx
test ecx, 0x8000000
je 0x46bc6f
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
cmp bp, 0x10
je 0x46bd51
cmp bp, 0x11
je 0x46bd51
cmp bp, 0x12
jne 0x46bc90
mov ecx, 1
jmp 0x46bc9c
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.00465d70
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.00465d70
lea ecx, [esp + 0x54]
push eax
mov eax, dword [esp + 0x198]
lea edx, [esp + 0x40]
push ecx
push edx
push eax
call fcn.0045f340
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.00465d70
push eax
mov eax, dword [esp + 0x1a0]
jmp 0x46bd22
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.00465d70
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.00465d70
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.004baecc
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.00460520
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.00465d70
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.00465d70
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.004baecc
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 0x46bf59
mov edx, dword [edi + 0x14]
mov esi, dword [edi + 0xc]
sub edx, esi
push edx
jmp 0x46bf62
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 0x46bfb2
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.0045fea0
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 0x46bfeb
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.00460240
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.00460370
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.0x46b6c8
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.00465d70
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.00465d70
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.004baecc
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.0045fe40
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