Function at 0x1005b310
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x40
mov edx, dword [esp + 0x44]
mov eax, dword [edx]
mov ecx, dword [eax + 0x200]
add ecx, dword [eax + 0x1fc]
mov eax, dword [esp + 0x48]
push ebx
push esi
mov esi, dword [edx + 0x10]
movzx dx, byte [esi + 6]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax]
movzx eax, byte [esi + 7]
shl dx, 8
movzx ebx, dx
mov dword [esp + 0xc], ecx
xor ecx, ecx
or ebx, eax
and ebx, 0xfffffffe
mov dword [esp + 0x10], ecx
jne 0x1005b35d
pop esi
xor eax, eax
pop ebx
add esp, 0x40
ret
mov eax, ebx
shr eax, 1
push ebp
mov dword [esp + 0x30], eax
mov ebp, 0xffff
cmp byte [esp + 0x58], cl
je 0x1005b375
inc dword [esp + 0x10]
mov edx, eax
push edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x20], edx
test eax, eax
jbe 0x1005b730
jmp 0x1005b390
lea eax, [edx + ecx]
shr eax, 1
movzx edx, byte [esi + eax*2 + 0xe]
lea ecx, [esi + eax*2 + 0xe]
shl dx, 8
movzx ebp, dx
movzx edx, byte [ecx + 1]
or ebp, edx
lea edx, [ebx + 2]
add ecx, edx
movzx edx, byte [ecx]
shl dx, 8
movzx edi, dx
movzx edx, byte [ecx + 1]
or edi, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ebp
cmp dword [esp + 0x14], edi
jae 0x1005b3da
mov ecx, dword [esp + 0x40]
mov edx, eax
mov dword [esp + 0x20], edx
jmp 0x1005b3eb
cmp dword [esp + 0x14], ebp
jbe 0x1005b3f4
mov edx, dword [esp + 0x20]
lea ecx, [eax + 1]
mov dword [esp + 0x40], ecx
cmp ecx, edx
jb 0x1005b390
jmp 0x1005b730
movzx edx, byte [ecx + ebx]
add ecx, ebx
movzx ebp, byte [ecx + ebx + 1]
shl dx, 8
movsx esi, dx
movzx edx, byte [ecx + 1]
or esi, edx
movzx edx, byte [ecx + ebx]
add ecx, ebx
shl dx, 8
movzx edx, dx
or edx, ebp
mov ebp, dword [esp + 0x34]
dec ebp
cmp eax, ebp
jb 0x1005b44b
cmp edi, 0xffff
jne 0x1005b44b
cmp dword [esp + 0x24], edi
jne 0x1005b44b
test edx, edx
je 0x1005b44b
lea eax, [edx + ecx + 2]
cmp eax, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
jbe 0x1005b44b
mov esi, 1
xor edx, edx
mov ebp, dword [esp + 0x54]
test byte [ebp + 0x14], 2
je 0x1005b7bb
mov ebp, eax
mov dword [esp + 0x20], ebp
cmp edx, 0xffff
jne 0x1005b46c
inc eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ebp
test ebp, ebp
jbe 0x1005b583
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x10]
lea eax, [eax + ebp*2 + 0xc]
mov dword [esp + 0x30], eax
lea eax, [ebx + eax + 2]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
lea ebp, [eax + ebx]
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x10]
lea ebp, [eax + ebp*2 + 0xe]
add eax, ebx
lea eax, [eax + ebx*2]
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x20]
lea eax, [eax + ebp*2 + 0xe]
mov dword [esp + 0x3c], eax
mov eax, 1
sub eax, ebx
mov dword [esp + 0x2c], eax
mov eax, 1
lea ebp, [ebx + 2]
sub eax, ebp
mov dword [esp + 0x40], eax
jmp 0x1005b4d5
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x28]
movzx eax, byte [eax + ebp]
mov ebp, dword [esp + 0x30]
movzx bp, byte [ebp]
shl bp, 8
movzx ebp, bp
or eax, ebp
cmp dword [esp + 0x14], eax
ja 0x1005b57b
mov ecx, dword [esp + 0x28]
movzx edx, byte [ecx]
shl dx, 8
movzx edi, dx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
movzx ecx, byte [edx + eax]
movzx edx, byte [edx]
shl dx, 8
or edi, ecx
mov ecx, dword [esp + 0x3c]
movsx esi, dx
movzx edx, byte [eax + ecx]
add eax, ecx
movzx eax, byte [eax + ebx]
or esi, edx
movzx edx, byte [ecx]
shl dx, 8
movzx edx, dx
or edx, eax
cmp edx, 0xffff
je 0x1005b552
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x1c], eax
jmp 0x1005b556
mov eax, dword [esp + 0x1c]
dec dword [esp + 0x10]
sub dword [esp + 0x30], 2
sub dword [esp + 0x28], 2
sub dword [esp + 0x38], 2
sub dword [esp + 0x3c], 2
cmp dword [esp + 0x10], 0
ja 0x1005b4d1
jmp 0x1005b57f
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
inc ebp
cmp eax, ebp
jne 0x1005b75a
mov ebp, dword [esp + 0x20]
cmp dword [esp + 0x10], ebp
je 0x1005b5f5
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x10]
movzx dx, byte [eax + ebp*2 + 0xe]
lea ecx, [eax + ebp*2 + 0xe]
shl dx, 8
movzx eax, dx
movzx edx, byte [ecx + 1]
or eax, edx
movzx edx, byte [ecx + ebx + 3]
mov dword [esp + 0x24], eax
movzx eax, byte [ecx + ebx + 2]
lea ecx, [ecx + ebx + 2]
shl ax, 8
movzx edi, ax
movzx eax, byte [ecx + ebx]
add ecx, ebx
shl ax, 8
or edi, edx
movzx edx, byte [ecx + 1]
movsx esi, ax
movzx eax, byte [ecx + ebx]
add ecx, ebx
shl ax, 8
or esi, edx
movzx edx, ax
movzx eax, byte [ecx + 1]
or edx, eax
lea eax, [ebp + 1]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x34]
jae 0x1005b719
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x40], ecx
lea ecx, [ecx + eax*2 + 0xe]
mov dword [esp + 0x3c], ecx
lea ecx, [ecx + ebx + 2]
lea ebp, [eax + ebx]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x40]
lea ebp, [ecx + ebp*2 + 0x10]
add ecx, ebx
lea ecx, [ecx + ebx*2]
lea eax, [ecx + eax*2 + 0x10]
mov dword [esp + 0x38], eax
mov eax, 1
sub eax, ebx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], eax
mov ebp, 1
lea eax, [ebx + 2]
sub ebp, eax
mov dword [esp + 0x40], ebp
jmp 0x1005b664
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x28]
movzx ebp, byte [ecx + ebp]
shl ax, 8
movzx eax, ax
or eax, ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
movzx eax, byte [ecx]
shl ax, 8
movzx eax, ax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x30]
movzx ebp, byte [eax + ebp]
mov eax, dword [esp + 0x48]
or eax, ebp
cmp dword [esp + 0x14], eax
jb 0x1005b715
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x2c]
mov edi, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x38]
lea eax, [ecx + edx]
mov edx, dword [esp + 0x30]
movzx dx, byte [edx]
shl dx, 8
movsx esi, dx
movzx edx, byte [eax]
or esi, edx
movzx edx, byte [eax + ebx]
movzx ax, byte [ecx]
shl ax, 8
movzx eax, ax
or edx, eax
mov eax, dword [esp + 0x10]
cmp edx, 0xffff
je 0x1005b6f0
mov dword [esp + 0x1c], eax
add dword [esp + 0x3c], 2
add dword [esp + 0x28], 2
add dword [esp + 0x30], 2
add dword [esp + 0x38], 2
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x34]
jb 0x1005b660
jmp 0x1005b719
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x20]
jne 0x1005b75a
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
cmp byte [esp + 0x5c], 0
je 0x1005b903
cmp dword [esp + 0x14], ebp
jbe 0x1005b8a3
inc eax
cmp eax, dword [esp + 0x34]
jne 0x1005b8a3
pop edi
pop ebp
pop esi
xor eax, eax
pop ebx
add esp, 0x40
ret
cmp eax, dword [esp + 0x10]
je 0x1005b7c7
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx + 0x10]
movzx edx, byte [ecx + eax*2 + 0xe]
shl dx, 8
lea ecx, [ecx + eax*2 + 0xe]
movzx ebp, dx
movzx edx, byte [ecx + 1]
or ebp, edx
movzx edx, byte [ecx + ebx + 2]
lea ecx, [ecx + ebx + 2]
shl dx, 8
movzx edi, dx
movzx edx, byte [ecx + 1]
or edi, edx
movzx edx, byte [ecx + ebx]
add ecx, ebx
shl dx, 8
movsx esi, dx
movzx edx, byte [ecx + 1]
or esi, edx
movzx edx, byte [ecx + ebx]
add ecx, ebx
movzx ebx, byte [ecx + 1]
shl dx, 8
movzx edx, dx
or edx, ebx
jmp 0x1005b7cb
cmp edx, 0xffff
je 0x1005b72c
mov ebp, dword [esp + 0x24]
test edx, edx
je 0x1005b82e
mov ebx, dword [esp + 0x14]
sub ebx, edi
lea edx, [edx + ebx*2]
add ecx, edx
cmp byte [esp + 0x5c], 0
je 0x1005b7eb
cmp ecx, dword [esp + 0x44]
ja 0x1005b730
movzx dx, byte [ecx]
movzx ecx, byte [ecx + 1]
shl dx, 8
movzx edx, dx
or edx, ecx
mov dword [esp + 0x18], edx
je 0x1005b730
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx]
add edx, esi
and edx, 0xffff
mov dword [esp + 0x18], edx
cmp edx, dword [ecx + 0x10]
jb 0x1005b730
mov dword [esp + 0x18], 0
jmp 0x1005b730
cmp byte [esp + 0x5c], 0
mov edx, dword [esp + 0x14]
lea ecx, [esi + edx]
movzx edx, cx
mov dword [esp + 0x18], edx
je 0x1005b903
mov edx, dword [esp + 0x54]
mov edx, dword [edx]
mov edi, dword [esp + 0x18]
cmp edi, dword [edx + 0x10]
jb 0x1005b730
mov dword [esp + 0x18], 0
test ecx, ecx
jge 0x1005b878
lea edx, [esi + ebp]
test edx, edx
jl 0x1005b878
neg esi
mov dword [esp + 0x14], esi
jmp 0x1005b730
cmp ecx, 0x10000
jge 0x1005b730
lea ecx, [esi + ebp]
cmp ecx, 0x10000
jl 0x1005b730
mov ecx, 0x10000
sub ecx, esi
mov dword [esp + 0x14], ecx
jmp 0x1005b730
mov edi, dword [esp + 0x54]
call fcn.1005aa80
test eax, eax
je 0x1005b8cd
cmp dword [esp + 0x18], 0
je 0x1005b903
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x14]
pop edi
pop ebp
pop esi
mov dword [eax], edx
mov eax, dword [esp + 0xc]
pop ebx
add esp, 0x40
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov esi, edi
mov dword [esi + 0x18], ecx
test eax, eax
je 0x1005b8e3
mov dword [esi + 0x1c], eax
jmp 0x1005b8f6
mov eax, esi
mov dword [esi + 0x18], ecx
call fcn.1005abd0
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x18], ecx
mov eax, ecx
test eax, eax
je 0x1005b903
mov edx, dword [esi + 0x18]
mov eax, dword [esp + 0x58]
mov dword [eax], edx
mov eax, dword [esp + 0x18]
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x40
ret