Function at 0x10004650
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xc
mov eax, dword [esp + 0x1c]
push ebx
push ebp
push esi
mov ecx, dword [eax + 4]
mov esi, dword [0x10074014]
mov ebp, dword [eax]
mov dword [esp + 0xc], ecx
mov ecx, dword [0x10074020]
lea edx, [esi + esi*2]
mov ebx, edx
mov dword [esp + 0x14], edx
mov edx, dword [0x10074018]
lea eax, [ecx + ecx*4 + 0xa]
shl eax, 4
sub ebx, eax
mov eax, dword [0x1007401c]
imul ebx, edx
sub ebx, 0x50
push edi
imul ebx, eax
imul eax, edx
mov edi, dword [0x10074024]
mov dword [esp + 0x14], 0
add eax, edi
imul eax, esi
add eax, ecx
mov esi, eax
shl esi, 5
sub esi, eax
lea eax, [esi + esi*2]
xor esi, esi
mov si, word [ebp + eax*8 + 0x14]
add ebx, esi
mov esi, dword [0x10074014]
lea eax, [edx + esi*2 + 2]
lea eax, [eax + eax*4]
shl eax, 4
add eax, 3
imul eax, ecx
add ebx, eax
mov eax, dword [0x10074010]
add eax, edi
lea eax, [eax + eax*2]
sub eax, esi
mov esi, dword [esp + 0x18]
add esi, 0xffffffb0
imul esi, edi
lea eax, [eax + eax*4]
shl eax, 4
add eax, ebp
add eax, ebx
mov ebx, dword [0x1007401c]
lea eax, [esi + eax + 0x18]
mov esi, 2
mov dword [esp + 0x18], eax
lea eax, [edi + edi]
sub esi, eax
mov eax, ecx
imul esi, dword [0x10074010]
sub eax, ebx
sub eax, edx
lea eax, [esi + eax*2]
xor esi, esi
mov si, word [ebp + 6]
add eax, esi
test eax, eax
jle 0x10004b66
mov eax, dword [esp + 0x18]
lea esi, [eax + 0x10]
jmp 0x10004740
mov ebx, dword [0x1007401c]
mov eax, dword [esi]
mov ebp, dword [0x10074014]
test eax, eax
jne 0x1000489b
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x38]
test eax, eax
mov dword [esp + 0x18], eax
jle 0x10004b25
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x34]
push eax
mov eax, ecx
imul eax, ebp
inc eax
imul eax, ebp
add eax, edi
add eax, ebx
lea eax, [eax + eax*2]
mov ebp, eax
lea eax, [edx + edx*2]
sub eax, ebp
mov ebp, 0x1000
add eax, 4
push eax
lea eax, [ebx*4]
sub ebp, eax
mov eax, dword [0x10074010]
imul eax, ecx
push ebp
lea eax, [eax + edi + 1]
lea eax, [eax + eax*2]
mov ebp, eax
lea eax, [edx + edx*2]
sub ebp, eax
imul ebp, ecx
mov ecx, dword [0x10074010]
add edx, ecx
mov ecx, dword [0x10074014]
add edi, ecx
lea ecx, [ebx + ebx*2]
lea edx, [edx + edx*2]
mov ebx, dword [esp + 0x1c]
add ebp, edx
lea edx, [edi + edi*2]
sub ebp, edx
mov edx, dword [esp + 0x24]
shl ecx, 1
sub ebp, ecx
add ebp, edx
mov edx, dword [esi - 4]
sub edx, eax
mov eax, dword [esp + 0x38]
add edx, ebx
push ebp
push edx
call dword [eax + 0x1c]
add esp, 0x14
test eax, eax
je 0x10004b73
mov ebx, dword [0x10074010]
mov ecx, dword [0x10074020]
mov eax, ebx
mov edx, dword [0x10074018]
imul eax, ecx
mov edi, dword [0x10074024]
sub eax, edx
lea eax, [eax + edi + 1]
imul eax, ecx
mov ecx, dword [0x1007401c]
lea ebp, [ecx + ecx]
imul ecx, edx
imul ecx, edx
sub eax, ebp
mov ebp, dword [0x10074014]
sub eax, edi
sub eax, ebp
mov ebp, dword [esi - 4]
add eax, ebx
mov ebx, dword [esp + 0x10]
add eax, edx
mov edx, ecx
neg edx
shl edx, 0x1f
sub edx, ecx
lea eax, [eax + eax*2]
add edx, edi
add eax, ebp
add eax, ebx
mov ebx, dword [esp + 0x18]
lea ecx, [edx + edx - 1]
and ecx, eax
mov dword [esi - 8], ecx
mov ecx, dword [0x10074024]
imul ecx, dword [0x10074014]
add ecx, dword [0x10074020]
lea edx, [ecx + ecx*2]
mov ecx, dword [0x10074010]
imul ecx, dword [0x1007401c]
lea ecx, [ecx + ecx*2]
sub edx, ecx
add edx, ebx
push edx
push 0
push eax
call dword [0x100774cc]
add esp, 0xc
jmp 0x10004b0d
imul ecx, edi
imul ecx, ebp
mov eax, ecx
mov ebp, dword [0x10074010]
shl eax, 0x1e
sub eax, ecx
mov ecx, edx
imul ecx, edx
add ebp, eax
mov eax, dword [esi]
add ecx, ebp
add ebx, 0xfffffffe
imul ebx, dword [0x10074014]
lea eax, [eax + ecx*4]
mov ecx, dword [esi + 4]
add eax, ecx
lea ecx, [edi + edi*2]
push eax
mov eax, 6
sub eax, ecx
mov ecx, dword [0x10074010]
imul eax, edx
mov edx, dword [esp + 0x28]
add ebx, ecx
add edx, eax
lea ecx, [ebx + ebx*2]
add ecx, edx
push ecx
call fcn.100045d0
add esp, 8
test eax, eax
je 0x10004b73
mov eax, dword [esp + 0x2c]
mov edi, dword [0x10074010]
mov ebp, 8
mov ecx, dword [eax + 0x34]
mov eax, dword [0x10074020]
push ecx
mov ecx, eax
shl ecx, 0x1c
sub ecx, eax
mov eax, dword [0x10074024]
mov edx, eax
add edi, eax
shl edx, 0x1c
sub edx, eax
lea edi, [edi + edx*4]
mov edx, dword [0x10074014]
mov ebx, edx
shl ebx, 0x1e
sub ebx, edx
lea ecx, [edi + ecx*4]
add ebx, ecx
mov ecx, dword [0x1007401c]
lea edi, [ecx*4]
sub ebp, edi
imul ebp, dword [0x10074018]
lea edi, [ebp + ebx*4 + 4]
mov ebp, dword [0x10074010]
push edi
lea edi, [eax + eax*2]
shl edi, 1
mov ebx, edi
lea edi, [ecx + ecx*2]
shl edi, 1
sub ebx, edi
mov edi, dword [0x10074020]
imul ebx, edi
add ebx, 6
add edi, ebp
imul ebx, eax
add edi, ecx
lea edi, [edi + edi*2]
shl edi, 1
sub ebx, edi
inc ecx
imul ecx, eax
mov edi, dword [0x10074018]
add ecx, edi
mov eax, ecx
lea ebp, [edi + edi*2]
neg eax
shl eax, 0x1f
sub eax, ecx
lea ecx, [edx + 1]
imul ecx, dword [0x10074010]
add edx, eax
lea ebx, [ebx + ebp*2 + 0x1000]
add ecx, edx
mov edx, dword [esi]
push ebx
mov ebx, dword [esp + 0x1c]
lea eax, [edx + ecx*2]
mov ecx, dword [esi - 4]
mov edx, dword [esp + 0x38]
add ecx, ebx
push eax
push ecx
call dword [edx + 0x1c]
add esp, 0x14
test eax, eax
je 0x10004b73
mov eax, dword [0x10074020]
mov edx, dword [0x10074014]
mov edi, dword [0x10074024]
mov ecx, eax
sub ecx, edx
add ecx, edi
mov edi, dword [esi - 4]
lea edi, [edi + ecx*2]
mov ecx, dword [0x10074010]
imul ecx, dword [0x1007401c]
add edi, ebx
mov ebx, ecx
neg ebx
shl ebx, 0x1f
sub ebx, ecx
mov ecx, dword [0x10074018]
add ebx, eax
mov ebp, ecx
imul ebx, edx
neg ebp
shl ebp, 0x1f
sub ebp, ecx
lea ebp, [ebx + ebp + 3]
mov ebx, eax
imul ebx, eax
imul ebp, dword [0x10074010]
add ebx, edx
imul ebx, eax
add ebp, ebx
mov ebx, dword [0x10074024]
lea eax, [ebx + 1]
imul eax, ebx
mov ebx, eax
neg ebx
shl ebx, 0x1f
sub ebx, eax
mov eax, dword [0x1007401c]
add ebx, ecx
mov ecx, eax
shl ecx, 0x1e
sub ecx, eax
add ebx, ebp
lea eax, [ebx + ecx*2]
mov ecx, dword [esi]
mov ebx, dword [esi + 4]
add eax, edx
lea edx, [ecx + eax*2]
mov eax, dword [esp + 0x20]
add eax, ebx
push edx
push eax
push edi
call dword [0x100774b8]
mov eax, dword [0x10074020]
mov ecx, dword [0x1007401c]
mov ebp, dword [0x10074014]
add esp, 0xc
lea edx, [eax + ecx + 1]
mov ebx, edx
neg ebx
shl ebx, 0x1f
sub ebx, edx
mov edx, dword [0x10074010]
add ebx, edx
lea edx, [ecx - 4]
imul edx, dword [0x10074018]
imul ebx, dword [0x10074024]
neg ebp
shl ebp, 0x1f
sub ebp, dword [0x10074014]
add edx, eax
add edx, ebx
add ebp, edx
add ebp, ecx
lea ebx, [ebp + ebp - 1]
and ebx, edi
mov edi, dword [0x10074014]
lea edx, [edi + 1]
mov ebp, edx
neg ebp
shl ebp, 0x1f
sub ebp, edx
mov edx, dword [0x10074018]
add ebp, eax
add eax, edx
imul ebp, dword [0x10074024]
mov edx, eax
add ecx, edi
neg edx
shl edx, 0x1f
sub edx, eax
mov eax, ecx
shl eax, 0x1e
add ebp, edx
sub eax, ecx
lea ecx, [ebp + eax*2]
lea edx, [ebx + ecx*2]
mov dword [esi - 8], edx
mov edx, dword [0x10074018]
mov ebx, dword [0x1007401c]
mov edi, dword [0x10074024]
mov ecx, dword [0x10074020]
mov eax, dword [esp + 0x14]
mov ebp, 2
inc eax
add esi, 0x28
mov dword [esp + 0x14], eax
lea eax, [edi + edi]
sub ebp, eax
mov eax, ecx
imul ebp, dword [0x10074010]
sub eax, ebx
mov ebx, dword [esp + 0x2c]
sub eax, edx
mov ebx, dword [ebx]
lea eax, [ebp + eax*2]
xor ebp, ebp
mov bp, word [ebx + 6]
mov ebx, dword [esp + 0x14]
add eax, ebp
cmp ebx, eax
jl 0x1000473a
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xc
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret