Function at 0x1008c530
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x1c]
xor eax, eax
push ebp
push esi
mov esi, dword [esp + 0x20]
mov ecx, ebx
mov ebp, 0x10
sar ebp, cl
push edi
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0xc]
add ecx, ebp
mov dword [esp + 0x1c], edi
cmp dword [edi + 0x8b8], ecx
setg al
xor edx, edx
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x10]
add eax, ebp
cmp dword [edi + 0x8bc], eax
setg dl
mov dword [esp + 0x10], edx
cmp dword [edi + 0x8b8], ecx
jg 0x1008c5d3
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], ecx
test edx, edx
jne 0x1008c5db
movzx eax, word [ecx + 8]
inc ebx
add ecx, eax
mov ebp, 0x10
mov dword [esp + 0x24], ecx
xor eax, eax
mov ecx, ebx
sar ebp, cl
mov ecx, dword [esi + 0xc]
add ecx, ebp
cmp dword [edi + 0x8b8], ecx
setg al
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x10]
add eax, ebp
cmp dword [edi + 0x8bc], eax
setg dl
cmp dword [edi + 0x8b8], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x10], edx
jle 0x1008c587
jmp 0x1008c5db
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x3f134]
cmp eax, 2
je 0x1008c648
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sar eax, 1
and eax, 0xf
sar ecx, 1
mov dword [esp + 0x14], eax
and ecx, 0xf
mov al, 4
mov dword [esp + 0x18], ecx
sub al, bl
movzx edx, al
mov eax, dword [esi + 0x288]
movzx edi, byte [eax + ecx + 0x220]
mov cl, dl
mov eax, dword [esp + 0x14]
shr edi, cl
and edi, 1
movzx eax, byte [eax + esi + 0x238]
shr eax, cl
mov ecx, dword [esi + 8]
lea edx, [edi + 0x27]
mov edi, dword [esp + 0x1c]
and eax, 1
lea edx, [edx + eax*2]
mov eax, dword [esi + 0x3f134]
lea edx, [edx + ebx*4]
shl edx, 5
add edx, ecx
jmp 0x1008c65f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 8]
cmp dword [esp + 0x28], 0
je 0x1008cd6f
cmp dword [esp + 0x10], 0
je 0x1008cca2
cmp eax, 2
jne 0x1008c6ac
mov ecx, dword [edi + 0x8ac]
imul ecx, dword [esi + 0x10]
add ecx, dword [esi + 0xc]
shl ecx, 5
add ecx, dword [edi + 0xb30]
movzx eax, byte [ecx]
cmp eax, ebx
jne 0x1008c6a1
movzx edx, byte [ecx + 2]
mov dword [esp + 0x10], edx
jmp 0x1008c6f7
mov edx, 3
mov dword [esp + 0x10], edx
jmp 0x1008c6f7
movzx eax, byte [ebx + str._a_t_t_t]
push eax
push edx
lea eax, [ecx + 0x3600]
push eax
call fcn.100017f0
add esp, 0xc
mov edx, eax
cmp dword [edi + 0x53c], 2
mov dword [esp + 0x10], edx
jne 0x1008c6f7
cmp edx, 2
je 0x1008cddf
cmp edx, 9
je 0x1008cddf
cmp edx, 6
je 0x1008cddf
cmp edx, 7
je 0x1008cddf
lea eax, [ebx + ebx*4]
lea ecx, [edx + eax*2]
mov dword [esp + 0x28], ecx
jmp dword [edx*4 + 0x1008d028]
mov edi, dword [esp + 0x24]
movzx eax, byte [edi]
push eax
movzx eax, byte [ecx*2 + 0x10117568]
push 0
push eax
push ebx
push esi
call fcn.100828a0
add esp, 0x14
test eax, eax
jne 0x1008ce70
jmp 0x1008c904
mov edi, dword [esp + 0x24]
movzx eax, byte [edi + 1]
push eax
movzx eax, byte [ecx*2 + 0x10117568]
push 1
push eax
push ebx
push esi
call fcn.100828a0
add esp, 0x14
test eax, eax
jne 0x1008ce70
add dword [esi + 0x10], ebp
movzx eax, byte [edi + 2]
push eax
mov eax, dword [esp + 0x2c]
push 1
movzx eax, byte [eax*2 + 0x10117568]
push eax
push ebx
push esi
call fcn.100828a0
add esp, 0x14
test eax, eax
jne 0x1008ce70
jmp 0x1008c901
mov edi, dword [esp + 0x24]
movzx eax, byte [edi + 3]
push eax
movzx eax, byte [ecx*2 + 0x10117568]
push 2
push eax
push ebx
push esi
call fcn.100828a0
add esp, 0x14
test eax, eax
jne 0x1008ce70
add dword [esi + 0xc], ebp
movzx eax, byte [edi + 4]
push eax
mov eax, dword [esp + 0x2c]
push 2
movzx eax, byte [eax*2 + 0x10117568]
push eax
push ebx
push esi
call fcn.100828a0
add esp, 0x14
test eax, eax
jne 0x1008ce70
sub dword [esi + 0xc], ebp
jmp 0x1008c904
sub dword [esi + 0x10], ebp
cmp dword [esi + 0x3f134], 2
je case.0x1008c934.3
mov ecx, dword [esp + 0x10]
cmp ecx, 3
jne 0x1008c923
cmp ebx, 4
jne case.0x1008c934.3
dec ebp
cmp ebp, 0xf
ja case.0x1008c934.3
movzx eax, byte [ebp + 0x1008d068]
jmp dword [eax*4 + 0x1008d050]
cmp eax, 2
jne 0x1008ccc9
mov eax, dword [edi + 0x8ac]
xor ecx, ecx
imul eax, dword [esi + 0x10]
add eax, dword [esi + 0xc]
shl eax, 5
add eax, dword [edi + 0xb30]
movzx eax, byte [eax]
cmp eax, ebx
setne cl
jmp 0x1008ccfd
movzx eax, word [edx + 8]
movzx edi, word [edx + 0xa]
sub edi, eax
movzx eax, word [edx + 2]
add edi, eax
test ebx, ebx
je 0x1008cce9
movzx ecx, word [edx + 0x10]
movzx eax, word [edx + 0xe]
sub ecx, eax
add edi, ecx
mov eax, dword [esi + 8]
add eax, 0x3600
push edi
push eax
call fcn.100019e0
add esp, 8
mov ecx, eax
mov edi, dword [esp + 0x24]
test ecx, ecx
je 0x1008cd50
movzx eax, word [edi + 8]
lea ecx, [ebx + 1]
add eax, edi
mov dword [esp + 0x10], 3
push eax
push ecx
push esi
call fcn.1008c530
add esp, 0xc
test eax, eax
jne 0x1008cddf
add dword [esi + 0xc], ebp
movzx eax, word [edi + 0xa]
add eax, edi
push eax
lea eax, [ebx + 1]
push eax
push esi
call fcn.1008c530
add esp, 0xc
test eax, eax
jne 0x1008cddf
sub dword [esi + 0xc], ebp
jmp 0x1008c904
movzx eax, byte [edi + 1]
push eax
lea eax, [ebx + ebx*4]
mov dword [esp + 0x14], 1
movzx eax, byte [eax*4 + 0x1011756a]
push 1
jmp 0x1008c71a
cmp eax, 2
jne 0x1008cdec
mov eax, dword [edi + 0x8ac]
xor edx, edx
imul eax, dword [esi + 0x10]
add eax, dword [esi + 0xc]
shl eax, 5
add eax, dword [edi + 0xb30]
movzx eax, byte [eax]
cmp eax, ebx
setne dl
test edx, edx
je 0x1008ce3f
mov edi, dword [esp + 0x24]
lea ecx, [ebx + 1]
mov dword [esp + 0x10], 3
movzx eax, word [edi + 8]
add eax, edi
push eax
push ecx
push esi
call fcn.1008c530
add esp, 0xc
test eax, eax
jne 0x1008cddf
add dword [esi + 0x10], ebp
movzx eax, word [edi + 0xc]
add eax, edi
push eax
lea eax, [ebx + 1]
push eax
push esi
call fcn.1008c530
add esp, 0xc
test eax, eax
je 0x1008c901
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret
movzx eax, word [edx + 0xc]
movzx edi, word [edx + 4]
sub edi, eax
movzx eax, word [edx + 2]
sub edi, eax
movzx eax, word [edx]
add edi, eax
test ebx, ebx
je 0x1008ce11
movzx eax, word [edx + 0x10]
movzx ecx, word [edx + 0xe]
sub ecx, eax
add edi, ecx
mov eax, dword [esi + 8]
add eax, 0x3600
push edi
push eax
call fcn.100019e0
mov ecx, dword [esp + 0x24]
add esp, 8
mov edx, eax
cmp dword [ecx + 0x53c], 2
jne 0x1008cd94
test edx, edx
je 0x1008cddf
jmp 0x1008cd9c
mov edi, dword [esp + 0x24]
mov dword [esp + 0x10], 2
movzx eax, byte [edi + 3]
push eax
push 2
lea eax, [ebx + ebx*4]
movzx eax, byte [eax*4 + 0x1011756c]
push eax
push ebx
push esi
call fcn.100828a0
add esp, 0x14
test eax, eax
je 0x1008c904
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x10
ret
lea eax, [ebx + ebx*4]
mov ebx, dword [esp + 0x18]
lea edx, [ecx + eax*2]
mov ecx, dword [esi + 0x288]
movzx eax, byte [edx + 0x10117500]
pop edi
mov byte [ecx + ebx + 0x220], al
mov ecx, dword [esp + 0x10]
movzx eax, byte [edx + 0x10117532]
mov byte [ecx + esi + 0x238], al
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
lea eax, [ebx + ebx*4]
mov edi, 0x101
mov ebx, dword [esp + 0x18]
lea edx, [ecx + eax*2]
movzx ecx, byte [edx + 0x10117500]
mov eax, dword [esi + 0x288]
imul ecx, edi
mov word [eax + ebx + 0x220], cx
movzx ecx, byte [edx + 0x10117532]
mov eax, dword [esp + 0x14]
imul ecx, edi
pop edi
mov word [eax + esi + 0x238], cx
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
lea eax, [ebx + ebx*4]
mov ebx, dword [esp + 0x18]
lea edx, [ecx + eax*2]
movzx eax, byte [edx + 0x10117500]
imul ecx, eax, 0x1010101
mov eax, dword [esi + 0x288]
pop edi
mov dword [eax + ebx + 0x220], ecx
movzx eax, byte [edx + 0x10117532]
mov ecx, dword [esp + 0x10]
imul eax, eax, 0x1010101
mov dword [ecx + esi + 0x238], eax
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
lea eax, [ebx + ebx*4]
lea edi, [ecx + eax*2]
movzx eax, byte [edi + 0x10117500]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov ebx, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [ecx + ebx + 0x220], eax
mov dword [ecx + ebx + 0x224], edx
movzx eax, byte [edi + 0x10117532]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x14]
jmp 0x1008d010
lea eax, [ebx + ebx*4]
lea ebx, [ecx + eax*2]
movzx eax, byte [ebx + 0x10117500]
push 0x1010101
cdq
push 0x1010101
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esi + 0x288]
mov edi, eax
mov ebp, dword [esp + 0x18]
push 0x1010101
push 0x1010101
mov dword [ecx + ebp + 0x220], edi
mov dword [ecx + ebp + 0x224], edx
mov eax, dword [esi + 0x288]
mov dword [eax + ebp + 0x228], edi
mov dword [eax + ebp + 0x22c], edx
movzx eax, byte [ebx + 0x10117532]
cdq
push edx
push eax
call fcn.100c4d20
mov ecx, dword [esp + 0x14]
mov dword [ecx + esi + 0x240], eax
mov dword [ecx + esi + 0x244], edx
mov dword [ecx + esi + 0x23c], edx
mov dword [ecx + esi + 0x238], eax
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret