Function at 0x1004b340
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x1c
mov ecx, dword [esp + 0x24]
xor eax, eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x34]
push edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
mov edi, dword [esi + 0x1c]
lea ebp, [esi + 0x5a]
add dword [esi + 0x19e], 0xfffffff6
mov eax, dword [esi + 0x19e]
mov ebx, dword [esi + 0x30]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], edi
cmp ebp, eax
ja 0x1004b756
mov ebp, dword [esp + 0x3c]
jmp 0x1004b390
lea ecx, [esp + 0x38]
push ecx
push dword [eax]
push eax
push ebp
push esi
push dword [esp + 0x44]
call fcn.1004ae60
mov edx, eax
test edx, edx
jne 0x1004b8ae
mov eax, dword [esp + 0x44]
test eax, eax
je 0x1004b3eb
mov ecx, dword [esi + 0x19e]
cmp dword [ecx + 6], edx
jge 0x1004b3c7
mov dword [ecx + 6], edx
mov eax, dword [esp + 0x44]
push eax
push dword [esp + 0x4c]
mov eax, dword [esi + 0x19e]
push dword [eax + 6]
mov eax, dword [esp + 0x40]
push dword [esp + 0x44]
push esi
push ebx
push eax
call fcn.1004bb30
mov dword [esp + 0x1c], eax
jmp 0x1004b3ef
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
cmp ecx, 5
jne 0x1004b41e
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x19e]
movsx edx, word [eax + 9]
imul edx, edi
cmp dword [ecx + 6], edx
jne 0x1004ba53
mov eax, dword [eax + 4]
mov dword [esp + 0x48], eax
jmp 0x1004b733
cmp dword [esp + 0x4c], 0
jne 0x1004b43d
test eax, eax
je 0x1004ba53
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
mov dword [esp + 0x48], eax
jmp 0x1004b737
mov eax, dword [esi + 0x19e]
add dword [eax + 6], edi
mov eax, dword [esi + 0x19e]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 6]
cdq
idiv edi
mov ebp, eax
movsx eax, word [ecx + 9]
cmp eax, dword [esi + 0x24]
jl 0x1004b80b
lea edi, [eax + 1]
mov ebx, eax
sar edi, 1
sub ebx, edi
inc ebx
cmp ebp, edi
jg 0x1004b47d
mov dword [esp + 0x24], 1
jmp 0x1004b492
dec eax
test al, 1
je 0x1004b488
mov eax, ebx
mov ebx, edi
mov edi, eax
mov dword [esp + 0x24], 2
sub ebp, edi
mov ecx, dword [esp + 0x3c]
lea eax, [ecx + 0xc]
push eax
lea eax, [ecx + 8]
push eax
call fcn.100460c0
mov dword [esp + 0x28], eax
mov ecx, dword [eax + 8]
mov dword [esp + 0x10], ecx
test byte [ecx + 8], 2
je 0x1004b4e3
push dword [esi + 0x20]
mov eax, dword [ecx + 4]
push dword [ecx + 0xb]
shl eax, 9
push eax
push dword [esi]
call fcn.100456a0
test eax, eax
jne 0x1004b7ef
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 0x14]
jle 0x1004b4e3
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x1004b51c
push 0
push eax
push dword [esi]
push dword [esp + 0x3c]
call fcn.10083d87
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x10]
cmp dword [eax + 4], 0
jne 0x1004b529
push 0xffffffffffffffef
push esi
call fcn.1004ba60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x24
mov eax, dword [esi + 0x18]
mov dword [ecx + 4], eax
inc dword [esi + 0x18]
mov eax, dword [esp + 0x10]
mov dword [esi + 0x28], 1
push dword [eax + 0xb]
lea eax, [ebx - 1]
push eax
call fcn.10045410
mov eax, dword [esp + 0x10]
lea ecx, [ebx - 1]
mov word [eax + 9], cx
mov eax, dword [esp + 0x38]
push dword [eax + 0xb]
lea eax, [edi - 1]
push eax
call fcn.10045410
mov eax, dword [esp + 0x38]
lea ecx, [edi - 1]
mov word [eax + 9], cx
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1004b5c9
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0xb]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xb]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0xb]
add eax, 4
push eax
mov eax, dword [esp + 0x14]
push dword [eax + 4]
call fcn.10045410
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xb]
add eax, 4
push eax
call fcn.100453c0
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x1004b5b6
mov eax, dword [ecx + 4]
mov dword [esi + 0x1ae], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x10]
add dword [esi + 0x1aa], eax
mov eax, dword [esp + 0x14]
jmp 0x1004b5cd
mov ecx, dword [esp + 0x10]
xor ebx, ebx
test eax, eax
mov eax, dword [esi + 0x20]
setne bl
imul edi, dword [esp + 0x18]
lea ebx, [ebx*4 + 4]
add edi, ebx
sub eax, edi
push eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0xb]
add eax, edi
push eax
mov eax, dword [ecx + 0xb]
add eax, ebx
push eax
call fcn.100528f0
mov eax, dword [esp + 0x44]
add esp, 0xc
cmp dword [esp + 0x24], 2
mov byte [eax + 8], 2
mov eax, dword [esp + 0x10]
mov byte [eax + 8], 2
push dword [esp + 0x50]
push dword [esp + 0x50]
push ebp
jne 0x1004b67c
push dword [esp + 0x1c]
push esi
push dword [esp + 0x28]
call fcn.1004ba90
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x19e]
mov edi, dword [esp + 0x18]
imul ebp, edi
mov eax, dword [eax + 4]
mov dword [ecx], eax
mov eax, dword [esi + 0x19e]
mov ecx, dword [esp + 0x28]
mov dword [eax + 6], ebp
mov eax, 0x2aaaaaab
mov ebp, dword [esp + 0x3c]
sub ecx, dword [ebp + 4]
imul ecx
mov eax, dword [esi + 0x19e]
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov word [eax + 4], cx
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
jmp 0x1004b6a9
push dword [esp + 0x44]
push esi
push dword [esp + 0x28]
call fcn.1004ba90
mov ecx, dword [esp + 0x38]
xor edi, edi
mov edx, dword [esp + 0x44]
movsx eax, word [ecx + 9]
cmp ebp, eax
mov ebp, dword [esp + 0x3c]
cmovl edx, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1004b6d9
mov eax, dword [esi + 0x19e]
push edx
push dword [esp + 0x4c]
mov eax, dword [eax + 6]
sub eax, edi
push eax
push dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
push esi
push dword [esp + 0x28]
push eax
call fcn.1004bb30
mov ecx, dword [esp + 0x38]
movsx eax, word [ecx + 9]
imul eax, edi
add eax, dword [ecx + 0xb]
add eax, ebx
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
movsx ecx, word [eax + 9]
imul ecx, edi
add ecx, dword [eax + 0xb]
add ecx, ebx
push ecx
call fcn.100453c0
lea ecx, [esp + 0x4c]
push ecx
lea ecx, [esp + 0x54]
push ecx
push eax
push ebp
push esi
push dword [esp + 0x44]
call fcn.1004bed0
test eax, eax
jne 0x1004b7fa
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x34]
add dword [esi + 0x19e], 0xfffffff6
lea edx, [esi + 0x5a]
mov eax, dword [esi + 0x19e]
inc dword [esp + 0x20]
cmp edx, eax
jbe 0x1004b390
lea ebp, [esi + 0x5a]
cmp ecx, 5
je 0x1004ba53
mov edx, dword [esi + 0x19a]
mov ecx, edx
add edx, 0xa
mov dword [esi + 0x19e], ebp
cmp ebp, ecx
ja 0x1004b791
mov eax, dword [ecx]
lea edx, [edx - 0xa]
mov dword [edx + 0xa], eax
mov ax, word [ecx + 4]
mov word [edx + 0xe], ax
mov eax, dword [ecx + 6]
sub ecx, 0xa
mov dword [edx + 0x10], eax
cmp ecx, ebp
jae 0x1004b774
add dword [esi + 0x19a], 0xa
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x30]
test eax, eax
je 0x1004b90c
push 0
push eax
push dword [esi]
push ebp
call fcn.10049970
mov dword [esi + 0x38], eax
test eax, eax
jne 0x1004b8dc
mov ecx, dword [esi + 0x19e]
add ecx, 6
cmp dword [ecx], 0
jge 0x1004b7d2
mov dword [ecx], 0
sub ecx, 0xa
lea eax, [ecx - 6]
cmp dword [esi + 0x19e], eax
jbe 0x1004b7c7
pop edi
pop esi
pop ebp
mov eax, 0xffffffef
pop ebx
add esp, 0x1c
ret 0x24
mov ecx, dword [esp + 0x30]
mov dword [ecx + 4], 0x2711
push eax
push esi
call fcn.1004ba60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x24
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1004b891
movsx eax, word [ecx + 9]
cmp ebp, eax
jle 0x1004b891
xor edx, edx
test ebx, ebx
setne dl
imul eax, edi
lea edx, [edx*4 + 4]
add eax, dword [ecx + 0xb]
add eax, edx
mov dword [esp + 0x34], edx
push eax
call fcn.100453c0
mov ebx, dword [esp + 0x3c]
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x4c]
push ecx
push eax
push ebx
push esi
push dword [esp + 0x44]
call fcn.1004bed0
test eax, eax
jne 0x1004b7fa
lea eax, [edi - 4]
push eax
mov eax, dword [esp + 0x48]
add eax, 4
push eax
mov eax, dword [esi + 0x19e]
mov ecx, dword [eax + 6]
mov eax, dword [esp + 0x40]
add ecx, dword [eax + 0xb]
mov eax, dword [esp + 0x3c]
sub ecx, edi
add eax, 4
add eax, ecx
push eax
call fcn.100528f0
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov ebx, dword [esp + 0x14]
push dword [esp + 0x50]
push dword [esp + 0x50]
push ebp
push ecx
push esi
push ebx
call fcn.1004ba90
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret 0x24
mov ecx, dword [esi + 0x19e]
add ecx, 6
cmp dword [ecx], 0
jge 0x1004b8c2
mov dword [ecx], 0
sub ecx, 0xa
lea eax, [ecx - 6]
cmp dword [esi + 0x19e], eax
jbe 0x1004b8b7
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0x1c
ret 0x24
mov ebx, dword [esp + 0x3c]
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x54]
push dword [esi + 0x19e]
push ebx
push esi
push ebp
call fcn.1004ae60
test eax, eax
je 0x1004b919
push eax
push esi
call fcn.1004ba60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x24
mov eax, dword [esi + 0x18]
mov ebx, dword [esp + 0x3c]
mov dword [esi + 0x38], eax
inc dword [esi + 0x18]
mov dword [esi + 0x28], 1
mov ecx, dword [esi + 0x19e]
mov eax, dword [esi + 0x38]
mov dword [ecx], eax
mov ecx, 0xffff
mov eax, dword [esi + 0x19e]
mov word [eax + 4], cx
mov eax, dword [esi + 0x19e]
mov dword [eax + 6], edi
lea eax, [esp + 0x38]
push eax
push dword [esi + 0x38]
push dword [esi + 0x19e]
push ebx
push esi
push ebp
call fcn.1004ae60
mov edx, eax
test edx, edx
je 0x1004b98d
mov ecx, dword [esi + 0x19e]
add ecx, 6
cmp dword [ecx], 0
jge 0x1004b973
mov dword [ecx], 0
sub ecx, 0xa
lea eax, [ecx - 6]
cmp dword [esi + 0x19e], eax
jbe 0x1004b968
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0x1c
ret 0x24
mov eax, dword [esp + 0x38]
push dword [eax + 0xb]
push 1
call fcn.10045410
mov ebp, dword [esp + 0x14]
xor ebx, ebx
mov eax, dword [esp + 0x38]
test ebp, ebp
push edi
push dword [esp + 0x48]
setne bl
lea ebx, [ebx*4 + 4]
add ebx, dword [eax + 0xb]
push ebx
call fcn.100528f0
add esp, 0xc
push ebx
push dword [esp + 0x4c]
call fcn.10045410
lea eax, [ebx + edi]
push eax
push dword [esp + 0x54]
call fcn.10045410
mov eax, dword [esp + 0x38]
mov ecx, 1
mov word [eax + 9], cx
test ebp, ebp
je 0x1004ba4b
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xb]
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0xb]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xb]
add eax, 4
push eax
mov eax, dword [esp + 0x3c]
push dword [eax + 4]
call fcn.10045410
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0xb]
add eax, 4
push eax
call fcn.100453c0
test eax, eax
jne 0x1004ba36
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
mov dword [esi + 0x1ae], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x10]
add dword [esi + 0x1aa], eax
mov eax, dword [esp + 0x10]
mov byte [eax + 8], 2
mov eax, dword [esp + 0x38]
mov byte [eax + 8], 2
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret 0x24