Function at 0x46d9b0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x3c
push ebx
mov ebx, dword [esp + 0x44]
mov eax, dword [ebx + 0x5c]
cmp eax, dword [ebx + 0x4c]
push ebp
push esi
push edi
jl 0x46d9d2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 8
xor ecx, ecx
cmp dword [ebx + 0x50], ecx
je 0x46d9c3
inc dword [ebx + 0x60]
mov eax, dword [ebx + 0x60]
xor edx, edx
div dword [ebx + 0x58]
mov eax, dword [ebx + 0x3c]
mov esi, dword [ebx + 0x28]
add esi, 6
imul edx, dword [ebx + 0x54]
lea edx, [eax + edx*4]
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x48]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
jge 0x46dc06
jmp 0x46da12
xor ecx, ecx
movsx ebx, word [esi]
movsx ebp, word [esi + 2]
mov eax, dword [esp + 0x54]
add esi, 4
xor edi, edi
xor edx, edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x48], ecx
lea eax, [eax + ebx*4]
cmp ebx, ebp
ja 0x46db56
sub ebp, ebx
inc ebp
cmp ebp, 2
jl 0x46daf3
mov ecx, dword [esp + 0x38]
sub ecx, ebx
dec ecx
shr ecx, 1
inc ecx
mov dword [esp + 0x34], ecx
lea ecx, [ebx + ecx*2]
mov dword [esp + 0x10], ecx
movsx ecx, word [esi]
movzx ebx, byte [eax + 3]
imul ebx, ecx
add dword [esp + 0x30], ebx
movzx ebx, byte [eax + 2]
imul ebx, ecx
add dword [esp + 0x28], ebx
movzx ebx, byte [eax + 1]
imul ebx, ecx
add dword [esp + 0x20], ebx
movzx ebx, byte [eax]
imul ebx, ecx
add dword [esp + 0x18], ebx
movsx ecx, word [esi + 2]
movzx ebx, byte [eax + 7]
imul ebx, ecx
add dword [esp + 0x2c], ebx
movzx ebx, byte [eax + 6]
imul ebx, ecx
add dword [esp + 0x24], ebx
movzx ebx, byte [eax + 5]
imul ebx, ecx
add dword [esp + 0x1c], ebx
movzx ebx, byte [eax + 4]
imul ebx, ecx
add dword [esp + 0x14], ebx
add esi, 4
add eax, 8
sub dword [esp + 0x34], 1
jne 0x46da84
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x10]
cmp ebx, dword [esp + 0x38]
ja 0x46db20
movsx ebp, word [esi]
movzx ebx, byte [eax + 3]
movzx edi, byte [eax + 2]
imul ebx, ebp
movzx ecx, byte [eax + 1]
imul edi, ebp
movzx edx, byte [eax]
imul ecx, ebp
imul edx, ebp
add esi, 2
jmp 0x46db24
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
add eax, ebp
mov ebp, dword [esp + 0x20]
add edx, eax
mov eax, dword [esp + 0x1c]
add eax, ebp
mov ebp, dword [esp + 0x28]
add ecx, eax
mov eax, dword [esp + 0x24]
add eax, ebp
mov ebp, dword [esp + 0x30]
add edi, eax
mov eax, dword [esp + 0x2c]
add eax, ebp
add ebx, eax
jmp 0x46db5a
mov ebx, dword [esp + 0x3c]
add edi, 0xff
add ecx, 0xff
add edx, 0xff
cmp ebx, 0x3fffff
jbe 0x46db7f
sar ebx, 0x1f
not ebx
and ebx, 0x3fffff
cmp edi, 0x3fffff
jbe 0x46db92
sar edi, 0x1f
not edi
and edi, 0x3fffff
shl ebx, 0xa
cmp ecx, 0x3fffff
jbe 0x46dba8
sar ecx, 0x1f
not ecx
and ecx, 0x3fffff
add edi, edi
add edi, edi
cmp edx, 0x3fffff
jbe 0x46dbbf
sar edx, 0x1f
not edx
and edx, 0x3fffff
mov eax, dword [esp + 0x40]
sar edx, 8
and edx, 0x3fc0
and ecx, 0x3fc000
or edx, ecx
sar edx, 6
and ebx, 0xff000000
or edx, ebx
mov ebx, dword [esp + 0x50]
and edi, 0xff0000
or edx, edi
mov dword [eax], edx
add eax, 4
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x44]
inc eax
cmp eax, dword [ebx + 0x48]
mov dword [esp + 0x44], eax
jl 0x46da10
mov ecx, dword [ebx + 0x64]
movsx edx, word [ecx + 2]
cmp dword [ebx + 0x60], edx
jl 0x46dc3c
mov eax, dword [ebx + 0x5c]
cmp eax, dword [ebx + 0x4c]
jge 0x46dc3a
lea ebx, [ebx]
mov ecx, dword [ebx + 0x64]
movsx edx, word [ecx + 2]
cmp dword [ebx + 0x60], edx
jl 0x46dc3a
push ebx
call fcn.0046d340
mov eax, dword [ebx + 0x5c]
cmp eax, dword [ebx + 0x4c]
jl 0x46dc20
emms
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x3c
ret 8