Function at 0x1018f120
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov edx, dword [ebp + 8]
push ebx
push esi
push edi
mov eax, dword [edx + 0xfd0]
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x1c]
movzx ecx, al
mov eax, dword [ebp + 0x40]
shl eax, 2
cmp dword [ebp + 0x28], 0
mov edi, dword [ecx*4 + 0x1043ebb8]
mov ebx, dword [ecx*4 + 0x1043ec08]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x44]
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], ebx
lea esi, [eax*4]
je 0x1018f27e
mov ecx, dword [ebp + 0x48]
xor eax, eax
test ecx, ecx
mov dword [ebp + 0x40], 0x5b8
setne al
test ecx, ecx
lea eax, [eax*2 + 0x2b80]
movzx ebx, word [eax + edx]
mov eax, 0x80
cmovne eax, dword [ebp + 0x40]
shl ecx, 4
add ebx, dword [eax + edx]
mov eax, dword [edx + 0x1008]
mov dword [ebp + 8], ebx
mov ebx, dword [ebp - 0x38]
add ebx, ecx
test byte [eax + 0x8c], 8
je 0x1018f220
cmp dword [ebp - 8], 0
mov eax, dword [ebp + 0x38]
lea ecx, [eax + eax]
mov dword [ebp + 0x44], ecx
jle 0x1018f916
imul esi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x3c]
add eax, eax
mov dword [ebp + 0x40], eax
mov eax, dword [ebp - 8]
add esi, dword [ebp + 8]
add esi, dword [ebp - 0x20]
mov edx, dword [ebp + 0x40]
nop dword [eax]
test edi, edi
jle 0x1018f209
mov edx, esi
movzx eax, byte [edx]
lea ecx, [ecx + 2]
lea edx, [edx + 1]
mov ax, word [ebx + eax*2 + 0x56]
mov word [ecx - 2], ax
sub edi, 1
jne 0x1018f1e6
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp + 0x44]
mov edx, dword [ebp + 0x40]
add esi, dword [ebp + 0x14]
add ecx, edx
sub eax, 1
mov dword [ebp + 0x44], ecx
mov dword [ebp - 8], eax
jne 0x1018f1e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
test eax, eax
jle 0x1018f916
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x38]
imul esi, edx
mov dword [ebp + 0x40], ecx
add esi, dword [ebp + 8]
add esi, dword [ebp - 0x20]
nop dword [eax]
test edi, edi
jle 0x1018f267
mov edx, esi
movzx eax, byte [edx]
lea edx, [edx + 1]
lea ecx, [ecx + 1]
mov al, byte [ebx + eax*2 + 0x56]
mov byte [ecx - 1], al
sub edi, 1
jne 0x1018f246
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp + 0x40]
mov edx, dword [ebp + 0x14]
add ecx, dword [ebp + 0x3c]
add esi, edx
sub eax, 1
mov dword [ebp + 0x40], ecx
mov dword [ebp - 8], eax
jne 0x1018f240
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
imul eax, dword [ebp + 0x48], 0x538
cmp dword [ebp + 0x44], 0
mov ebx, dword [ecx*4 + 0x1043ec58]
mov ecx, dword [ecx*4 + 0x1043eca8]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 8]
mov ecx, dword [eax + edx + 0x14]
mov eax, dword [eax + edx + 0x18]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], eax
jne 0x1018f2cd
test eax, eax
je 0x1018f2bc
mov cl, byte [edx + 0xfd6]
jmp 0x1018f2c2
mov cl, byte [edx + 0xfd4]
mov dword [ebp - 0x28], 0
test cl, cl
je 0x1018f2d4
mov dword [ebp - 0x28], 1
cmp dword [ebp + 0x40], 0
jne 0x1018f2f9
cmp dword [ebp - 0x10], 0
je 0x1018f2e8
mov cl, byte [edx + 0xfd7]
jmp 0x1018f2ee
mov cl, byte [edx + 0xfd5]
mov dword [ebp - 0x24], 0
test cl, cl
je 0x1018f300
mov dword [ebp - 0x24], 1
mov ecx, dword [edx + 0xff8]
mov edi, dword [edx + 0xff4]
neg ecx
sar ecx, 5
mov dword [ebp - 0x30], ecx
mov ecx, dword [edx + 0xff0]
neg ecx
sar ecx, 5
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x10]
add ecx, 3
sar edi, cl
mov ecx, edi
mov edi, dword [edx + 0xffc]
sub ecx, dword [ebp - 0x20]
sub ecx, dword [ebp - 0xc]
add ecx, dword [ebp + 0x14]
mov dword [ebp - 0x14], ecx
lea ecx, [eax + 3]
mov eax, dword [ebp + 0x40]
add eax, dword [ebp - 0x18]
sar edi, cl
mov ecx, dword [ebp - 0x10]
sub edi, esi
shl eax, cl
sub edi, ebx
add eax, dword [ebp - 0x34]
add edi, dword [ebp + 0x18]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x40], eax
mov eax, dword [edx + 0xfc4]
mov dword [ebp - 0x20], edi
mov dword [ebp - 8], eax
test edi, edi
jle 0x1018f388
mov eax, dword [ebp + 0x44]
add eax, dword [ebp - 0x1c]
shl eax, cl
add eax, dword [ebp - 0x30]
mov dword [ebp - 0x3c], 1
cmp eax, dword [edx + 0xfbc]
jl 0x1018f38f
mov dword [ebp - 0x3c], 0
mov eax, dword [ebp - 0x38]
mov esi, 5
mov dl, byte [eax + 4]
mov edi, dword [eax]
mov byte [ebp + 0x2b], dl
mov edx, dword [ebp - 0x10]
test edx, edx
jne 0x1018f3aa
test ecx, ecx
je case.0x1018f3b6.3
cmp edi, 0x11
ja case.0x1018f3b6.3
movzx eax, byte [edi + 0x1018f938]
jmp dword [eax*4 + 0x1018f920]
cmp edx, 1
jne 0x1018f3ce
lea edi, [ecx - 1]
neg edi
sbb edi, edi
add edi, 3
jmp case.0x1018f3b6.3
cmp ecx, 1
jne case.0x1018f3b6.3
mov edi, ecx
jmp case.0x1018f3b6.3
cmp edx, 1
jne 0x1018f3ce
lea edi, [edx + 2]
jmp case.0x1018f3b6.3
cmp edx, 1
jne 0x1018f3f2
lea edi, [ecx - 1]
neg edi
sbb edi, edi
add edi, 3
jmp case.0x1018f3b6.3
cmp ecx, 1
jne case.0x1018f3b6.3
lea edi, [ecx + 2]
jmp case.0x1018f3b6.3
cmp edx, 1
jne 0x1018f406
lea edi, [edx + 3]
jmp case.0x1018f3b6.3
cmp ecx, 1
jne case.0x1018f3b6.3
lea edi, [ecx + 0xf]
jmp case.0x1018f3b6.3
cmp edx, 1
jne 0x1018f41a
mov edi, 0x11
cmp ecx, 1
cmove edi, esi
mov eax, dword [ebp + 0x20]
movzx edx, al
mov dword [ebp - 0x38], 0
lea ecx, [eax - 1]
movzx esi, byte [edx + 0x1043edcc]
mov eax, esi
and esi, 0x20
and eax, 8
mov dword [ebp - 0x2c], esi
cmp byte [ebp + 0x2c], 5
je 0x1018f44d
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp cl, 7
ja 0x1018f475
movzx edx, byte [edx + 0x1043ed04]
xor eax, eax
add edx, dword [ebp + 0x24]
cmp edx, 0x5a
mov dword [ebp - 0x38], edx
setl al
xor ecx, ecx
cmp edx, 0xb4
setg cl
mov dword [ebp - 0x2c], ecx
mov esi, 0x10
test eax, eax
je 0x1018f5f8
cmp dword [ebp - 0x28], 0
je 0x1018f5f4
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x40], eax
jge 0x1018f5f4
mov eax, dword [ebp - 0x10]
mov edx, 1
movzx ecx, al
movzx eax, byte [edi + 0x1043eb70]
shr eax, cl
cmp eax, edx
mov dword [ebp - 8], ecx
cmova edx, eax
cmp dword [ebp + 0x44], 0
jle 0x1018f524
cmp byte [edi + 0x1043eba0], 0x40
jbe 0x1018f50f
mov edx, dword [ebp - 4]
mov eax, esi
mov cl, dl
shr eax, cl
mov ecx, dword [ebp - 8]
shr esi, cl
mov ecx, dword [ebp + 0x40]
cmp dword [ebp + 0x44], eax
jne 0x1018f4f3
mov eax, dword [ebp - 0x18]
add eax, ecx
cmp eax, esi
jne 0x1018f4f3
mov dword [ebp - 8], 1
mov esi, 0x10
jmp 0x1018f604
mov eax, ecx
xor ecx, ecx
cdq
idiv esi
add edx, dword [ebp - 0x18]
cmp edx, esi
mov esi, 0x10
setl cl
mov dword [ebp - 8], ecx
jmp 0x1018f5fe
mov eax, dword [ebp + 0x40]
xor ecx, ecx
add eax, dword [ebp - 0x18]
cmp eax, edx
setl cl
mov dword [ebp - 8], ecx
jmp 0x1018f5fe
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x40]
add eax, ecx
cmp eax, edx
jge 0x1018f53c
mov dword [ebp - 8], 1
jmp 0x1018f601
mov ecx, dword [ebp + 0xc]
movzx eax, byte [edi + 0x1043eb40]
mov dword [ebp - 0x18], eax
movzx ecx, byte [ecx + 0x1043eb88]
mov dword [ebp - 0x40], ecx
lea esi, [ecx - 1]
mov cl, byte [edi + 0x1043eb58]
mov edx, esi
and esi, dword [ebp - 0x34]
and edx, dword [ebp - 0x30]
sar edx, cl
mov ecx, eax
sar esi, cl
test edx, edx
jne 0x1018f57d
mov dword [ebp - 8], 1
lea esi, [edx + 0x10]
jmp 0x1018f5fe
mov ecx, dword [ebp - 0x18]
lea eax, [esi + 1]
shl eax, cl
cmp eax, dword [ebp - 0x40]
jl 0x1018f591
xor eax, eax
lea esi, [eax + 0x10]
jmp 0x1018f5fb
mov ecx, 5
sub ecx, dword [ebp - 0x18]
shl edx, cl
add edx, esi
mov dword [ebp - 0x40], edx
mov eax, edx
mov ecx, dword [ebp - 0x40]
cdq
and edx, 7
add edx, eax
sar edx, 3
and ecx, 0x80000007
jns 0x1018f5bb
dec ecx
or ecx, 0xfffffff8
inc ecx
mov al, byte [ebp + 0x2b]
cmp al, 6
je 0x1018f5dd
cmp al, 7
je 0x1018f5dd
mov eax, dword [edi*4 + 0x1043ede0]
mov esi, 0x10
movzx eax, byte [eax + edx]
shr eax, cl
and eax, 1
jmp 0x1018f5fb
mov eax, dword [edi*4 + 0x1043ee38]
mov esi, 0x10
movzx eax, byte [eax + edx]
shr eax, cl
and eax, 1
jmp 0x1018f5fb
xor eax, eax
jmp 0x1018f5fb
or eax, 0xffffffff
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 0x40]
mov edx, dword [ebp - 4]
cmp dword [ebp - 0x2c], 0
je 0x1018f765
cmp dword [ebp - 0x3c], 0
je 0x1018f702
cmp dword [ebp - 0x24], 0
je 0x1018f702
mov al, byte [edi + 0x1043eba0]
test ecx, ecx
jle 0x1018f679
cmp al, 0x40
jbe 0x1018f702
mov cl, byte [ebp - 0x10]
mov eax, dword [ebp + 0x40]
shr esi, cl
cdq
idiv esi
test edx, edx
jne 0x1018f702
mov ecx, dword [ebp - 4]
mov esi, 0x10
mov eax, dword [ebp + 0x44]
cdq
movzx ecx, cl
shr esi, cl
idiv esi
movzx eax, byte [edi + 0x1043eb88]
shr eax, cl
cmp eax, esi
cmovb esi, eax
mov eax, dword [ebp - 0x1c]
add eax, edx
xor edx, edx
cmp eax, esi
setl dl
jmp 0x1018f768
movzx eax, byte [edi + 0x1043eb88]
mov cl, dl
shr eax, cl
mov ecx, 1
cmp eax, 1
cmova ecx, eax
mov eax, dword [ebp + 0x44]
add eax, dword [ebp - 0x1c]
cmp eax, ecx
jge 0x1018f6a3
mov edx, 1
jmp 0x1018f768
movzx eax, byte [edi + 0x1043eb40]
movzx ecx, byte [edi + 0x1043eb58]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x40], ecx
movzx esi, byte [eax + 0x1043eb88]
lea eax, [esi - 1]
mov edx, eax
and eax, dword [ebp - 0x34]
and edx, dword [ebp - 0x30]
sar edx, cl
mov ecx, dword [ebp - 0x3c]
sar eax, cl
mov ecx, dword [ebp + 0x40]
mov dword [ebp - 0x40], eax
test eax, eax
jne 0x1018f6f9
shl edx, cl
mov ecx, dword [ebp - 4]
sar edx, cl
add edx, dword [ebp - 0x1c]
add edx, dword [ebp + 0x44]
mov dword [ebp + 0x40], edx
xor edx, edx
sar esi, cl
cmp dword [ebp + 0x40], esi
setl dl
jmp 0x1018f768
lea eax, [edx + 1]
shl eax, cl
cmp eax, esi
jl 0x1018f706
xor edx, edx
jmp 0x1018f768
mov ecx, 5
sub ecx, dword [ebp - 0x3c]
shl edx, cl
add edx, dword [ebp - 0x40]
mov dword [ebp + 0x40], edx
mov eax, edx
cdq
and edx, 7
add edx, eax
mov eax, dword [ebp + 0x40]
sar edx, 3
and eax, 0x80000007
jns 0x1018f730
dec eax
or eax, 0xfffffff8
inc eax
mov cl, byte [ebp + 0x2b]
cmp cl, 6
je 0x1018f751
cmp cl, 7
je 0x1018f751
mov ecx, dword [edi*4 + 0x1043ee78]
movzx edx, byte [ecx + edx]
mov cl, al
shr edx, cl
and edx, 1
jmp 0x1018f768
mov ecx, dword [edi*4 + 0x1043eed0]
movzx edx, byte [ecx + edx]
mov cl, al
shr edx, cl
and edx, 1
jmp 0x1018f768
or edx, 0xffffffff
mov edi, dword [ebp + 8]
xor eax, eax
cmp dword [ebp + 0x10], eax
sete al
cmp dword [ebp + 0x48], 0
mov dword [ebp + 0x44], eax
jne 0x1018f7ad
mov eax, dword [edi + 0xfdc]
mov esi, dword [edi + 0xfd8]
test eax, eax
je 0x1018f7a2
mov al, byte [eax + 5]
cmp al, 9
je 0x1018f79b
cmp al, 0xa
je 0x1018f79b
cmp al, 0xb
jne 0x1018f7a2
mov ecx, 1
jmp 0x1018f7a4
xor ecx, ecx
test esi, esi
je 0x1018f80d
mov al, byte [esi + 5]
jmp 0x1018f7fa
mov eax, dword [edi + 0xfe4]
mov esi, dword [edi + 0xfe0]
test eax, eax
je 0x1018f7e2
cmp byte [eax + 0x9f], 0
jl 0x1018f7e2
cmp byte [eax + 0x14], 0
jg 0x1018f7e2
mov al, byte [eax + 6]
cmp al, 9
je 0x1018f7db
cmp al, 0xa
je 0x1018f7db
cmp al, 0xb
jne 0x1018f7e2
mov ecx, 1
jmp 0x1018f7e4
xor ecx, ecx
test esi, esi
je 0x1018f80d
cmp byte [esi + 0x9f], 0
jl 0x1018f80d
cmp byte [esi + 0x14], 0
jg 0x1018f80d
mov al, byte [esi + 6]
cmp al, 9
je 0x1018f806
cmp al, 0xa
je 0x1018f806
cmp al, 0xb
jne 0x1018f80d
mov eax, 1
jmp 0x1018f80f
xor eax, eax
test ecx, ecx
jne 0x1018f81a
mov dword [ebp + 0x40], ecx
test eax, eax
je 0x1018f821
mov dword [ebp + 0x40], 1
mov eax, dword [edi + 0x1008]
test byte [eax + 0x8c], 8
mov eax, dword [ebp - 0x20]
je 0x1018f8ab
test edx, edx
jle 0x1018f83e
cmp ebx, eax
mov edx, eax
cmovl edx, ebx
cmp dword [ebp - 0x24], 0
je 0x1018f84d
add eax, ebx
cmp ebx, eax
cmovge ebx, eax
jmp 0x1018f84f
xor ebx, ebx
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
test esi, esi
jle 0x1018f863
cmp ecx, eax
mov esi, eax
cmovl esi, ecx
cmp dword [ebp - 0x28], 0
je 0x1018f872
add eax, ecx
cmp ecx, eax
cmovge ecx, eax
jmp 0x1018f874
xor ecx, ecx
push dword [edi + 0x1a78]
push dword [ebp + 0x40]
push edx
push ebx
push esi
push ecx
push dword [ebp + 0x44]
push dword [ebp + 0x1c]
push dword [ebp + 0x2c]
push dword [ebp - 0x38]
push dword [ebp + 0x20]
push dword [ebp + 0x3c]
push dword [ebp + 0x38]
push dword [ebp + 0x34]
push dword [ebp + 0x30]
call fcn.10190480
add esp, 0x3c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edx, edx
jle 0x1018f8b6
cmp ebx, eax
mov edx, eax
cmovl edx, ebx
cmp dword [ebp - 0x24], 0
je 0x1018f8c5
add eax, ebx
cmp ebx, eax
cmovge ebx, eax
jmp 0x1018f8c7
xor ebx, ebx
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
test esi, esi
jle 0x1018f8db
cmp ecx, eax
mov esi, eax
cmovl esi, ecx
cmp dword [ebp - 0x28], 0
je 0x1018f8ea
add eax, ecx
cmp ecx, eax
cmovge ecx, eax
jmp 0x1018f8ec
xor ecx, ecx
push dword [ebp + 0x40]
push edx
push ebx
push esi
push ecx
push dword [ebp + 0x44]
push dword [ebp + 0x1c]
push dword [ebp + 0x2c]
push dword [ebp - 0x38]
push dword [ebp + 0x20]
push dword [ebp + 0x3c]
push dword [ebp + 0x38]
push dword [ebp + 0x34]
push dword [ebp + 0x30]
call fcn.1018fd20
add esp, 0x38
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret