Function at 0x46d310
Capabilities:
Enumerate pe sections

Disassembly:
push edi
push ebp
push ebx
sub esp, 0x48
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x5c]
xor edx, edx
lea eax, [esp + 0x24]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0046c230
mov ebp, eax
test ebp, ebp
jne 0x46d365
mov eax, dword [esp + 0x24]
cmp eax, 2
jge 0x46d352
mov ebp, 0xffffffeb
jmp 0x46d365
add eax, 0xfffffffe
cmp eax, 0x443
mov dword [esp + 0x24], eax
jle 0x46d386
mov ebp, 0xffffffeb
mov edx, dword [esp + 0x20]
test edx, edx
je 0x46d37d
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x46d37d
mov dword [esp], edx
call fcn.004948db
mov eax, ebp
add esp, 0x48
pop ebx
pop ebp
pop edi
ret
mov dword [esp], edi
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x18]
mov dword [esp + 4], eax
lea eax, [esp + 0x20]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
call fcn.0046c050
mov ebp, eax
test ebp, ebp
jne 0x46d365
mov edx, dword [esp + 0x24]
test edx, edx
jle 0x46d365
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x40], esi
movzx eax, byte [ecx]
mov edx, eax
and edx, 0xf0
sar edx, 4
and eax, 0xf
test edx, edx
jl 0x46d89c
cmp edx, 1
jg 0x46d88e
cmp eax, 3
jg 0x46d880
mov ebx, dword [esp + 0x58]
cmp eax, dword [ebx + 0x90]
jl 0x46d404
lea ebx, [eax + 1]
mov ebp, dword [esp + 0x58]
mov dword [ebp + 0x90], ebx
lea ebx, [eax*8]
lea ebx, [ebx + eax*4]
mov ebp, dword [esp + 0x58]
mov esi, dword [ebx + ebp + 0x373c]
test esi, esi
je 0x46d6b7
mov ebp, dword [esp + 0x58]
mov ebx, dword [ebx + ebp + 0x3740]
test ebx, ebx
je 0x46d6b7
lea ebx, [edx + eax*2]
lea ecx, [ebx*8]
lea ebx, [ecx + ebx*4]
mov dword [esp + 0x28], ebx
mov ecx, dword [esp + 0x58]
lea ebp, [ecx + ebx]
mov byte [ebp + 0x3744], dl
mov ebx, dword [ebp + 0x373c]
mov byte [ebp + 0x3745], al
mov ecx, dword [esp + 0x18]
mov cl, byte [ecx + 1]
mov byte [ebx], cl
mov ebx, dword [esp + 0x18]
movzx ecx, byte [ebx + 1]
mov bl, byte [ebx + 2]
mov esi, dword [ebp + 0x373c]
mov byte [esi + 1], bl
mov esi, dword [esp + 0x18]
movzx ebx, byte [esi + 2]
add ebx, ecx
mov cl, byte [esi + 3]
mov esi, dword [ebp + 0x373c]
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x18]
movzx esi, byte [ecx + 3]
add esi, ebx
mov cl, byte [ecx + 4]
mov ebx, dword [ebp + 0x373c]
mov byte [ebx + 3], cl
mov ecx, dword [esp + 0x18]
movzx ebx, byte [ecx + 4]
add ebx, esi
mov cl, byte [ecx + 5]
mov esi, dword [ebp + 0x373c]
mov byte [esi + 4], cl
mov ecx, dword [esp + 0x18]
movzx esi, byte [ecx + 5]
add esi, ebx
mov cl, byte [ecx + 6]
mov ebx, dword [ebp + 0x373c]
mov byte [ebx + 5], cl
mov ecx, dword [esp + 0x18]
movzx ebx, byte [ecx + 6]
add ebx, esi
mov cl, byte [ecx + 7]
mov esi, dword [ebp + 0x373c]
mov byte [esi + 6], cl
mov ecx, dword [esp + 0x18]
movzx esi, byte [ecx + 7]
add esi, ebx
mov cl, byte [ecx + 8]
mov ebx, dword [ebp + 0x373c]
mov byte [ebx + 7], cl
mov ecx, dword [esp + 0x18]
movzx ebx, byte [ecx + 8]
add ebx, esi
mov cl, byte [ecx + 9]
mov esi, dword [ebp + 0x373c]
mov byte [esi + 8], cl
mov ecx, dword [esp + 0x18]
movzx esi, byte [ecx + 9]
add esi, ebx
mov cl, byte [ecx + 0xa]
mov ebx, dword [ebp + 0x373c]
mov byte [ebx + 9], cl
mov ecx, dword [esp + 0x18]
movzx ebx, byte [ecx + 0xa]
add ebx, esi
mov cl, byte [ecx + 0xb]
mov esi, dword [ebp + 0x373c]
mov byte [esi + 0xa], cl
mov ecx, dword [esp + 0x18]
movzx esi, byte [ecx + 0xb]
add esi, ebx
mov cl, byte [ecx + 0xc]
mov ebx, dword [ebp + 0x373c]
mov byte [ebx + 0xb], cl
mov ecx, dword [esp + 0x18]
movzx ebx, byte [ecx + 0xc]
add ebx, esi
mov cl, byte [ecx + 0xd]
mov esi, dword [ebp + 0x373c]
mov byte [esi + 0xc], cl
mov ecx, dword [esp + 0x18]
movzx edi, byte [ecx + 0xd]
add edi, ebx
mov cl, byte [ecx + 0xe]
mov ebx, dword [ebp + 0x373c]
mov byte [ebx + 0xd], cl
mov ecx, dword [esp + 0x18]
movzx esi, byte [ecx + 0xe]
add esi, edi
mov cl, byte [ecx + 0xf]
mov ebx, dword [ebp + 0x373c]
mov byte [ebx + 0xe], cl
mov ecx, dword [esp + 0x18]
movzx ebx, byte [ecx + 0xf]
add ebx, esi
mov cl, byte [ecx + 0x10]
mov ebp, dword [ebp + 0x373c]
mov byte [ebp + 0xf], cl
mov ecx, dword [esp + 0x18]
movzx ebp, byte [ecx + 0x10]
lea edi, [ebp + ebx]
xor esi, esi
test edi, edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], esi
jle 0x46d6b7
lea esi, [ebp + ebx]
cmp esi, 6
jl 0x46d85b
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x58]
lea esi, [esi + edi + 0x3740]
mov dword [esp + 0x3c], esi
lea ebx, [ebp + ebx - 6]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], edx
mov edx, edi
jmp 0x46d614
mov ecx, dword [esp + 0x18]
mov cl, byte [ecx + eax + 0x11]
mov ebp, dword [edx + ebx + 0x3740]
mov byte [eax + ebp], cl
mov esi, dword [esp + 0x18]
mov cl, byte [eax + esi + 0x12]
mov edi, dword [edx + ebx + 0x3740]
mov byte [eax + edi + 1], cl
mov ecx, dword [esp + 0x18]
mov cl, byte [eax + ecx + 0x13]
mov ebp, dword [edx + ebx + 0x3740]
mov byte [eax + ebp + 2], cl
mov ecx, dword [esp + 0x18]
mov cl, byte [eax + ecx + 0x14]
mov ebp, dword [edx + ebx + 0x3740]
mov byte [eax + ebp + 3], cl
mov ecx, dword [esp + 0x18]
mov cl, byte [eax + ecx + 0x15]
mov ebp, dword [edx + ebx + 0x3740]
mov byte [eax + ebp + 4], cl
add eax, 5
mov ecx, dword [esp + 0x44]
cmp eax, ecx
jle 0x46d610
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
jmp 0x46d6a4
mov ecx, dword [esp + 0x18]
mov cl, byte [ecx + ebx + 0x11]
mov edi, dword [ebp]
mov byte [ebx + edi], cl
inc ebx
cmp ebx, esi
jl 0x46d6a0
mov ecx, dword [esp + 0x18]
test edx, edx
je 0x46d710
lea ebx, [ecx + 1]
add ecx, 0x11
imul ebp, eax, 0x670
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x58]
lea edx, [eax + ebp + 0x364]
mov dword [esp + 0x10], edx
call fcn.00445060
mov ebp, eax
test ebp, ebp
jne 0x46d8a2
mov edx, dword [esp + 0x58]
mov edx, dword [edx + 0x88]
cmp edx, 4
jge 0x46d763
inc edx
mov ecx, dword [esp + 0x58]
mov dword [ecx + 0x88], edx
jmp 0x46d763
lea ebx, [ecx + 1]
add ecx, 0x11
imul ebp, eax, 0x670
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x58]
lea edx, [eax + ebp + 0x1d24]
mov dword [esp + 0x10], edx
call fcn.00445060
mov ebp, eax
test ebp, ebp
jne 0x46d8b0
mov edx, dword [esp + 0x58]
mov edx, dword [edx + 0x8c]
cmp edx, 4
jge 0x46d763
inc edx
mov ecx, dword [esp + 0x58]
mov dword [ecx + 0x8c], edx
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 2]
lea ebx, [ecx + 3]
mov dword [esp + 0x18], edx
movzx esi, byte [ecx + 1]
lea edi, [ecx + 4]
mov dword [esp + 0x18], ebx
movzx edx, byte [ecx + 2]
add edx, esi
mov dword [esp + 0x18], edi
movzx ebx, byte [ecx + 3]
add ebx, edx
lea edx, [ecx + 5]
mov dword [esp + 0x18], edx
movzx esi, byte [ecx + 4]
add esi, ebx
lea edx, [ecx + 6]
mov dword [esp + 0x18], edx
movzx ebx, byte [ecx + 5]
add ebx, esi
lea edx, [ecx + 7]
mov dword [esp + 0x18], edx
movzx esi, byte [ecx + 6]
add esi, ebx
lea edx, [ecx + 8]
mov dword [esp + 0x18], edx
movzx ebx, byte [ecx + 7]
add ebx, esi
lea edx, [ecx + 9]
mov dword [esp + 0x18], edx
movzx esi, byte [ecx + 8]
add esi, ebx
lea edx, [ecx + 0xa]
mov dword [esp + 0x18], edx
movzx ebx, byte [ecx + 9]
add ebx, esi
lea edx, [ecx + 0xb]
mov dword [esp + 0x18], edx
movzx esi, byte [ecx + 0xa]
add esi, ebx
lea edx, [ecx + 0xc]
mov dword [esp + 0x18], edx
movzx ebx, byte [ecx + 0xb]
add ebx, esi
lea edx, [ecx + 0xd]
mov dword [esp + 0x18], edx
movzx esi, byte [ecx + 0xc]
add esi, ebx
lea edx, [ecx + 0xe]
mov dword [esp + 0x18], edx
movzx ebx, byte [ecx + 0xd]
add ebx, esi
lea edx, [ecx + 0xf]
mov dword [esp + 0x18], edx
movzx esi, byte [ecx + 0xe]
add esi, ebx
lea edx, [ecx + 0x10]
mov dword [esp + 0x18], edx
movzx ebx, byte [ecx + 0xf]
add ebx, esi
lea edx, [ecx + 0x11]
mov dword [esp + 0x18], edx
movzx edx, byte [ecx + 0x10]
add edx, ebx
lea ecx, [edx + ecx + 0x11]
mov dword [esp + 0x18], ecx
mov ebx, dword [esp + 0x24]
sub ebx, edx
add ebx, 0xffffffef
test ebx, ebx
mov dword [esp + 0x24], ebx
jg 0x46d3c0
mov esi, dword [esp + 0x40]
jmp 0x46d365
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x58]
lea esi, [ebx + ebp + 0x3740]
mov dword [esp + 0x3c], esi
jmp 0x46d689
mov esi, dword [esp + 0x40]
mov ebp, 0xfffffffa
jmp 0x46d365
mov esi, dword [esp + 0x40]
mov ebp, 0xfffffffa
jmp 0x46d365
mov esi, dword [esp + 0x40]
jmp 0x46d892
mov esi, dword [esp + 0x40]
mov ebp, 0xfffffffa
jmp 0x46d365
mov esi, dword [esp + 0x40]
mov ebp, 0xfffffffa
jmp 0x46d365