Function at 0x46de10
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 0x46de32
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 0x46de23
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 0x46e066
jmp 0x46de72
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 0x46dfb6
sub ebp, ebx
inc ebp
cmp ebp, 2
jl 0x46df53
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 0x46dee4
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x10]
cmp ebx, dword [esp + 0x38]
ja 0x46df80
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 0x46df84
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 0x46dfba
mov ebx, dword [esp + 0x3c]
add edi, 0xff
add ecx, 0xff
add edx, 0xff
cmp ebx, 0x3fffff
jbe 0x46dfdf
sar ebx, 0x1f
not ebx
and ebx, 0x3fffff
cmp edi, 0x3fffff
jbe 0x46dff2
sar edi, 0x1f
not edi
and edi, 0x3fffff
shl ebx, 0xa
cmp ecx, 0x3fffff
jbe 0x46e008
sar ecx, 0x1f
not ecx
and ecx, 0x3fffff
add edi, edi
add edi, edi
cmp edx, 0x3fffff
jbe 0x46e01f
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 0x46de70
mov ecx, dword [ebx + 0x64]
movsx edx, word [ecx + 2]
cmp dword [ebx + 0x60], edx
jl 0x46e09c
mov eax, dword [ebx + 0x5c]
cmp eax, dword [ebx + 0x4c]
jge 0x46e09a
lea ebx, [ebx]
mov ecx, dword [ebx + 0x64]
movsx edx, word [ecx + 2]
cmp dword [ebx + 0x60], edx
jl 0x46e09a
push ebx
call fcn.0046d7a0
mov eax, dword [ebx + 0x5c]
cmp eax, dword [ebx + 0x4c]
jl 0x46e080
emms
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x3c
ret 8