Function at 0x100033e0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x38
mov ecx, dword [0x1005cd58]
mov edx, dword [0x1005cd54]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x48]
mov esi, dword [esi]
push edi
mov edi, dword [0x1005cd60]
lea eax, [ecx + edi]
imul eax, edx
sub eax, edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], esi
mov esi, dword [0x1005cd5c]
lea ebx, [esi + edi]
mov dword [esp + 0x18], ebx
mov ebx, dword [0x1005cd4c]
lea eax, [eax + ebx + 1]
mov ebx, dword [0x1005cd50]
imul eax, ebx
add eax, dword [0x1005cd4c]
mov ebp, 1
sub ebp, esi
imul ebp, edx
add ebp, eax
mov edx, dword [esp + 0x28]
add ebp, edi
imul ebp, ebp, 0x1f0
movzx edx, word [edx + ebp + 0x14]
lea ebp, [esi + 0x27]
imul ebp, dword [0x1005cd54]
mov eax, esi
sub eax, ecx
lea eax, [eax + eax*4]
add eax, eax
add eax, eax
add eax, eax
sub eax, ebp
mov ebp, edi
imul ebp, ebp, 0x27
sub eax, ebp
lea eax, [edx + eax*2 + 0x18]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
shl edx, 4
add edx, 2
imul edx, dword [0x1005cd4c]
lea eax, [edx + eax*2 - 0x4e]
mov edx, dword [esp + 0x4c]
imul eax, ebx
add eax, dword [edx]
mov ebp, dword [0x1005cd4c]
mov dword [esp + 0x24], eax
mov eax, esi
imul eax, ecx
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
shl eax, 4
mov edx, 0x52
sub edx, eax
mov eax, dword [esp + 0x28]
imul edx, ebp
add ecx, eax
add edx, ecx
test byte [0x1005f878], 1
mov dword [esp + 0x10], edx
jne 0x1000350c
mov eax, dword [0x1005cd58]
mov ecx, ebx
imul ecx, eax
or dword [0x1005f878], 1
lea ecx, [ecx + ebp + 1]
imul ecx, eax
mov eax, dword [0x1005cd54]
add eax, edi
imul eax, ebp
sub eax, ecx
add eax, esi
add eax, dword [0x1005cd54]
lea ecx, [eax + eax*2]
mov dword [0x1005f874], ecx
mov ecx, dword [esp + 0x18]
imul ecx, esi
add ecx, edi
imul ecx, dword [0x1005cd58]
mov eax, ebp
imul eax, dword [0x1005cd54]
mov dword [esp + 0x1c], eax
mov eax, dword [0x1005cd54]
sub eax, ebp
add eax, 2
imul eax, ebx
sub eax, ecx
mov ecx, esi
imul ecx, dword [0x1005cd54]
add eax, ecx
sub eax, dword [esp + 0x1c]
mov ecx, dword [0x1005f874]
sub eax, ebp
lea ecx, [ecx + eax*2]
add ecx, eax
or ecx, dword [edx + 8]
mov eax, esi
imul eax, ebx
mov dword [esp + 0x14], eax
mov eax, dword [0x1005cd54]
mov dword [esp + 0x34], ecx
mov ecx, eax
imul ecx, edi
add ecx, 1
imul ecx, eax
mov eax, esi
imul eax, esi
imul eax, ebp
imul eax, ebx
mov edx, 1
imul eax, edi
sub edx, esi
sub edx, ebx
imul edx, dword [0x1005cd58]
add edx, ecx
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx + 0x3c]
sub ecx, eax
sub ecx, dword [0x1005cd58]
lea edx, [edx + ebp*2]
sub edx, dword [esp + 0x14]
lea eax, [ecx + edi - 1]
mov ecx, dword [esp + 0x1c]
not eax
sub edx, edi
lea eax, [eax + edx*2]
and eax, dword [esp + 0x34]
add ecx, 1
imul ecx, esi
mov dword [esp + 0x38], eax
lea eax, [edi + edi]
sub eax, ecx
sub eax, ebx
add eax, ebp
mov edx, eax
shl edx, 4
sub edx, eax
mov eax, dword [esp + 0x10]
lea ecx, [eax + edx*8]
mov edx, dword [esp + 0x4c]
push edx
call fcn.10003000
mov ecx, dword [0x1005cd54]
lea edx, [ecx + ebp*2]
imul edx, esi
mov ecx, ebp
sub ecx, edx
add ecx, edi
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 0x24]
add esp, 4
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], 0
add eax, 0x28
mov edx, dword [0x1005cd58]
mov dword [esp + 0x10], eax
lea eax, [ebp + 1]
lea ecx, [eax + edx]
mov edx, dword [esp + 0x4c]
imul ecx, esi
mov dword [esp + 0x28], eax
mov eax, dword [edx]
movzx eax, word [eax + 6]
sub eax, ecx
sub eax, ebp
sub eax, ebx
add eax, dword [0x1005cd54]
mov dword [esp + 0x24], 1
add eax, edi
cmp eax, 1
jle 0x1000393e
lea ebx, [ebx]
lea ecx, [ebx + edi]
lea eax, [esi + 2]
imul eax, ecx
sub eax, dword [0x1005cd54]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x10]
lea eax, [eax + eax*2]
add eax, dword [ecx + 8]
mov ecx, dword [0x1005f874]
lea edx, [ebx + ebx]
sub ecx, edx
or eax, ecx
mov dword [esp + 0x18], eax
mov eax, esi
imul eax, ebx
mov dword [esp + 0x14], eax
mov eax, dword [0x1005cd54]
mov ecx, eax
imul ecx, edi
add ecx, 1
imul ecx, eax
mov edx, 1
sub edx, esi
sub edx, ebx
imul edx, dword [0x1005cd58]
add edx, ecx
lea eax, [edx + ebp*2]
imul ebp, ebx
sub eax, dword [esp + 0x14]
mov edx, dword [esp + 0x4c]
mov ecx, dword [edx + 0x3c]
sub eax, edi
sub ecx, 1
not ecx
lea eax, [ecx + eax*2]
and eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
lea eax, [esi + esi*4]
add eax, eax
add eax, eax
add eax, eax
sub ecx, eax
push edx
mov dword [esp + 0x18], ebp
call fcn.10003000
mov ecx, dword [0x1005cd58]
add ebp, 1
imul ebp, ecx
mov edx, 3
sub edx, ebp
mov ebp, dword [0x1005cd54]
imul edx, ebx
add ebp, ecx
mov ecx, dword [esp + 0x20]
add ebp, ebp
sub edx, ebp
mov ebp, dword [0x1005cd4c]
add edx, ebp
add esp, 4
cmp dword [esp + 0x38], ecx
lea eax, [eax + edx*2]
mov dword [esp + 0x20], eax
je 0x10003810
mov edx, esi
imul edx, ebp
add edx, dword [0x1005cd54]
mov eax, ebx
imul eax, edi
add eax, edx
imul eax, dword [0x1005cd54]
mov edx, dword [esp + 0x3c]
sub eax, esi
sub eax, dword [0x1005cd58]
add eax, dword [esp + 0x14]
lea ecx, [ecx + eax*2]
add ecx, eax
mov eax, dword [esp + 0x34]
add edx, eax
cmp edx, ecx
ja 0x10003810
mov eax, dword [0x1005cd54]
mov ecx, ebx
imul ecx, eax
imul ecx, edi
add ecx, ecx
add ebp, eax
mov edx, 2
sub edx, ecx
imul edx, esi
add ebp, edi
add ebp, ebp
sub ebp, ebx
sub ebp, dword [0x1005cd58]
lea eax, [edx + ebp*2]
mov edx, dword [esp + 0x4c]
lea eax, [eax + eax*4]
lea ecx, [esp + eax*4 + 0x34]
push ecx
push edx
call fcn.10003100
add esp, 8
test eax, eax
je 0x10003966
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov edi, dword [0x1005cd60]
mov ebx, dword [0x1005cd50]
mov ebp, dword [0x1005cd4c]
mov esi, dword [0x1005cd5c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov ecx, dword [0x1005cd58]
lea eax, [ecx + ecx - 2]
imul eax, ecx
lea edx, [ebx + edi*2]
add edx, edi
add edx, edx
sub eax, edx
add eax, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x40], edx
jmp 0x10003902
lea eax, [edi + edi*2]
add eax, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, dword [0x1005cd58]
mov edx, esi
imul edx, ecx
mov eax, ebx
sub eax, edx
mov edx, dword [0x1005cd54]
imul edx, edi
sub eax, edx
lea edx, [eax + eax*2 - 6]
imul edx, dword [0x1005cd54]
mov eax, ebp
sub eax, esi
add eax, ecx
lea eax, [eax + eax*2]
add edx, eax
mov eax, dword [esp + 0x1c]
add eax, 3
imul eax, ebx
sub edx, eax
add edx, 0x2000000
test dword [esp + 0x14], edx
je 0x100038ad
mov eax, dword [0x1005cd54]
imul eax, ecx
lea edx, [ebx + 1]
imul edx, ebx
sub edx, eax
mov eax, ebp
imul eax, ecx
add edx, ebp
add eax, edx
imul eax, edi
mov edx, eax
mov eax, dword [esp + 0x28]
imul eax, esi
add edx, eax
mov eax, dword [esp + 0x40]
sub edx, ebx
add edx, 0x2000000
test eax, edx
je 0x100038ad
or eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
jmp 0x100038dd
mov edx, dword [esp + 0x30]
imul edx, ebp
mov eax, 1
sub eax, edx
imul eax, esi
sub eax, ecx
lea eax, [eax + eax*2]
mov ecx, eax
sub ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
or eax, dword [esp + 0x40]
sub ecx, 0x2000001
and ecx, eax
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [0x1005cd58]
mov edx, ebx
imul edx, edi
add edx, dword [0x1005cd54]
add edx, edx
sub eax, edx
sub eax, dword [esp + 0x34]
add eax, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x24]
add dword [esp + 0x10], 0x28
lea edx, [ebp + 1]
mov dword [esp + 0x28], edx
add edx, ecx
mov ecx, dword [esp + 0x4c]
imul edx, esi
mov ecx, dword [ecx]
movzx ecx, word [ecx + 6]
sub ecx, edx
sub ecx, ebp
sub ecx, ebx
add ecx, dword [0x1005cd54]
add eax, 1
add ecx, edi
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x10003660
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0x34]
push edx
push eax
mov dword [esp + 0x4c], 1
call fcn.10003100
add esp, 8
pop edi
neg eax
pop esi
sbb eax, eax
pop ebp
neg eax
pop ebx
add esp, 0x38
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret