Function at 0x1002be60
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x84
mov eax, dword [0x10088064]
xor eax, esp
mov dword [esp + 0x7c], eax
push ebx
mov ebx, dword [esp + 0x98]
push ebp
push esi
mov esi, edx
mov dword [esp + 0x14], ecx
push edi
mov dword [esp + 0x44], ebx
mov dl, byte [esi]
test dl, dl
je 0x1002bf38
mov ecx, dword [esi + 0x10]
mov edi, ecx
mov ebp, dword [esi + 0x14]
add edi, 4
mov eax, ebp
mov dword [esp + 0x20], ebp
adc eax, 0
mov dword [esp + 0x48], eax
jne 0x1002beb3
cmp edi, 4
jb 0x1002bf49
cmp eax, dword [esi + 0xc]
ja 0x1002bf49
jb 0x1002bec7
cmp edi, dword [esi + 8]
ja 0x1002bf49
mov eax, dword [esi + 4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], ecx
add eax, ecx
je 0x1002bee8
mov eax, dword [esp + 0x48]
mov dword [esi + 0x10], edi
mov dword [esp + 0x28], edi
mov edi, eax
mov dword [esi + 0x14], eax
jmp 0x1002beea
mov edi, ebp
mov eax, dword [esp + 0x28]
add eax, 2
adc edi, 0
jne 0x1002befb
cmp eax, 2
jb 0x1002bf49
cmp edi, dword [esi + 0xc]
ja 0x1002bf49
jb 0x1002bf07
cmp eax, dword [esi + 8]
ja 0x1002bf49
mov ebx, dword [esp + 0x28]
add ebx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x44]
je 0x1002bf4e
mov dword [esi + 0x10], eax
mov eax, dword [esi + 4]
add eax, dword [esp + 0x28]
mov dword [esi + 0x14], edi
movzx ebp, byte [eax + 1]
movzx eax, byte [eax]
shl ebp, 8
add ebp, eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], ebp
jmp 0x1002bf66
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov byte [esi], 0
xor dl, dl
mov dword [esp + 0x20], ebp
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], 0
test dl, dl
je 0x1002bfa9
mov eax, dword [esi + 0x10]
mov ebp, dword [esi + 0x14]
add eax, 2
adc ebp, 0
jne 0x1002bf79
cmp eax, 2
jb 0x1002bfa9
cmp ebp, dword [esi + 0xc]
ja 0x1002bfa9
jb 0x1002bf85
cmp eax, dword [esi + 8]
ja 0x1002bfa9
mov edi, dword [esi + 4]
add edi, dword [esi + 0x10]
je 0x1002bfae
mov dword [esi + 0x14], ebp
mov dword [esi + 0x10], eax
movzx ebp, byte [edi + 1]
movzx eax, byte [edi]
shl ebp, 8
add ebp, eax
mov dword [esp + 0x14], ebp
mov dword [esp + 0x48], ebp
jmp 0x1002bfc0
mov byte [esi], 0
xor dl, dl
xor ebp, ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x14], ebp
test dl, dl
je 0x1002c0bf
mov ebp, dword [esi + 0x10]
mov eax, ebp
mov edi, dword [esi + 0x14]
add eax, 8
adc edi, 0
jne 0x1002bfd9
cmp eax, 8
jb 0x1002c0bf
cmp edi, dword [esi + 0xc]
ja 0x1002c0bf
jb 0x1002bfed
cmp eax, dword [esi + 8]
ja 0x1002c0bf
mov edx, dword [esi + 4]
add edx, ebp
mov dword [esp + 0x28], edx
je 0x1002c0c2
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], eax
movzx eax, byte [edx + 7]
cdq
mov edi, eax
mov ebp, edx
mov eax, dword [esp + 0x28]
shld ebp, edi, 8
shl edi, 8
movzx eax, byte [eax + 6]
cdq
add edi, eax
mov eax, dword [esp + 0x28]
adc ebp, edx
shld ebp, edi, 8
movzx eax, byte [eax + 5]
shl edi, 8
cdq
add edi, eax
mov eax, dword [esp + 0x28]
adc ebp, edx
shld ebp, edi, 8
movzx eax, byte [eax + 4]
shl edi, 8
cdq
add edi, eax
mov eax, dword [esp + 0x28]
adc ebp, edx
shld ebp, edi, 8
movzx eax, byte [eax + 3]
shl edi, 8
cdq
add edi, eax
mov eax, dword [esp + 0x28]
adc ebp, edx
shld ebp, edi, 8
movzx eax, byte [eax + 2]
shl edi, 8
cdq
add edi, eax
mov eax, dword [esp + 0x28]
adc ebp, edx
shld ebp, edi, 8
movzx eax, byte [eax + 1]
shl edi, 8
cdq
add edi, eax
mov eax, dword [esp + 0x28]
adc ebp, edx
shld ebp, edi, 8
movzx eax, byte [eax]
shl edi, 8
cdq
add edi, eax
adc ebp, edx
cmp ebp, 0x7fffffff
jb 0x1002c0d3
ja 0x1002c0a5
cmp edi, 0xffffffff
jbe 0x1002c0d3
test ebx, ebx
je 0x1002ce1a
mov dword [ebx], 4
mov dword [ebx + 4], 0x1b
jmp 0x1002ce1a
mov byte [esi], 0
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
add ecx, dword [esp + 0x98]
mov edx, edi
mov eax, dword [esp + 0x20]
adc eax, dword [esp + 0x9c]
add edx, 0x38
mov dword [esp + 0x28], ebp
adc dword [esp + 0x28], 0
mov dword [esp + 0x38], ecx
mov dword [esp + 0x20], eax
cmp dword [esp + 0x28], eax
jb 0x1002c121
ja 0x1002c107
cmp edx, ecx
jbe 0x1002c121
test ebx, ebx
je 0x1002ce1a
mov dword [ebx], 0x15
mov dword [ebx + 4], 8
jmp 0x1002ce1a
cmp ebp, dword [esp + 0x9c]
jb 0x1002c175
mov ecx, dword [esp + 0x98]
ja 0x1002c137
cmp edi, ecx
jb 0x1002c175
add ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
adc eax, dword [esp + 0x9c]
cmp dword [esp + 0x28], eax
ja 0x1002c175
jb 0x1002c150
cmp edx, ecx
ja 0x1002c175
mov ecx, edi
mov eax, ebp
sub ecx, dword [esp + 0x98]
sbb eax, dword [esp + 0x9c]
push eax
push ecx
mov ecx, esi
call fcn.10034930
add esp, 8
xor al, al
jmp 0x1002c24e
mov esi, dword [esp + 0x18]
xor edx, edx
push ebp
push edi
mov ecx, esi
call fcn.10035870
add esp, 8
test eax, eax
jns 0x1002c1a3
test ebx, ebx
je 0x1002ce1a
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
mov eax, dword [esi + 0x10]
mov dword [ebx + 4], eax
jmp 0x1002ce1a
push 0x18
call dword [sym.imp.msvcrt.dll_malloc]
mov esi, eax
add esp, 4
test esi, esi
je 0x1002ce09
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x54]
push 0
push 0x38
mov edx, eax
mov word [esi], 1
mov dword [esi + 4], eax
mov dword [esi + 8], 0x38
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
call fcn.1002e490
add esp, 8
test edx, edx
jg 0x1002c24c
jl 0x1002c1fc
test eax, eax
jae 0x1002c211
test ebx, ebx
je 0x1002c22d
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
mov dword [ebx], eax
mov eax, dword [ecx + 0x10]
mov dword [ebx + 4], eax
jmp 0x1002c22d
test edx, edx
jg 0x1002c24c
jl 0x1002c21c
cmp eax, 0x38
jae 0x1002c24c
test ebx, ebx
je 0x1002c22d
mov dword [ebx], 0x11
mov dword [ebx + 4], 0
cmp byte [esi + 1], 0
mov edi, dword [sym.imp.msvcrt.dll_free]
je 0x1002c241
push dword [esi + 4]
call edi
add esp, 4
push esi
call edi
add esp, 4
jmp 0x1002ce1a
mov al, 1
mov dl, byte [esi]
mov byte [esp + 0x27], al
mov byte [esp + 0x37], dl
test dl, dl
je 0x1002c2a9
mov ecx, dword [esi + 0x14]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 0x10]
add ecx, 4
adc dword [esp + 0x28], 0
jne 0x1002c279
cmp ecx, 4
jb 0x1002c2a9
mov ebx, dword [esp + 0x28]
cmp ebx, dword [esi + 0xc]
mov ebx, dword [esp + 0x44]
ja 0x1002c2a9
jb 0x1002c28d
cmp ecx, dword [esi + 8]
ja 0x1002c2a9
mov ebx, dword [esi + 4]
add ebx, dword [esi + 0x10]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x44]
je 0x1002c2ba
mov dword [esi + 0x10], ecx
mov ecx, dword [esp + 0x28]
mov dword [esi + 0x14], ecx
jmp 0x1002c2ba
xor dl, dl
mov byte [esi], 0
mov dword [esp + 0x18], 0
mov byte [esp + 0x37], dl
mov ecx, dword [esp + 0x18]
cmp dword [ecx], 0x6064b50
je 0x1002c2fe
test ebx, ebx
je 0x1002c2d7
mov dword [ebx], 0x15
mov dword [ebx + 4], 9
test al, al
je 0x1002ce1a
cmp byte [esi + 1], 0
mov edi, dword [sym.imp.msvcrt.dll_free]
je 0x1002c2f3
push dword [esi + 4]
call edi
add esp, 4
push esi
call edi
add esp, 4
jmp 0x1002ce1a
test dl, dl
je 0x1002c417
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
add eax, 8
adc ecx, 0
jne 0x1002c31d
cmp eax, 8
jb 0x1002c417
cmp ecx, dword [esi + 0xc]
ja 0x1002c417
jb 0x1002c331
cmp eax, dword [esi + 8]
ja 0x1002c417
mov edx, dword [esi + 4]
add edx, dword [esi + 0x10]
mov dword [esp + 0x28], edx
je 0x1002c422
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
movzx eax, byte [edx + 7]
cdq
mov ecx, eax
mov eax, dword [esp + 0x28]
shld edx, ecx, 8
shl ecx, 8
movzx eax, byte [eax + 6]
mov dword [esp + 0x18], edx
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc eax, edx
shld eax, ecx, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
shl ecx, 8
movzx eax, byte [eax + 5]
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc eax, edx
shld eax, ecx, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
shl ecx, 8
movzx eax, byte [eax + 4]
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc eax, edx
shld eax, ecx, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
shl ecx, 8
movzx eax, byte [eax + 3]
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc eax, edx
shld eax, ecx, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
shl ecx, 8
movzx eax, byte [eax + 2]
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc eax, edx
shld eax, ecx, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
shl ecx, 8
movzx eax, byte [eax + 1]
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc eax, edx
shld eax, ecx, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
shl ecx, 8
movzx eax, byte [eax]
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc eax, edx
mov dl, byte [esp + 0x37]
jmp 0x1002c437
xor dl, dl
mov byte [esi], 0
mov byte [esp + 0x37], dl
jmp 0x1002c426
mov dl, byte [esp + 0x37]
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
and dword [esp + 0xa0], 4
je 0x1002c492
add ecx, edi
adc eax, ebp
add ecx, 0xc
adc eax, 0
cmp ecx, dword [esp + 0x38]
jne 0x1002c457
cmp eax, dword [esp + 0x20]
je 0x1002c492
test ebx, ebx
je 0x1002c468
mov dword [ebx], 0x15
mov dword [ebx + 4], 8
cmp byte [esp + 0x27], 0
je 0x1002ce1a
cmp byte [esi + 1], 0
mov edi, dword [sym.imp.msvcrt.dll_free]
je 0x1002c487
push dword [esi + 4]
call edi
add esp, 4
push esi
call edi
add esp, 4
jmp 0x1002ce1a
test dl, dl
je 0x1002c520
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
add ecx, 4
mov eax, edx
adc eax, 0
mov dword [esp + 0x38], eax
jne 0x1002c4b3
cmp ecx, 4
jb 0x1002c520
cmp eax, dword [esi + 0xc]
ja 0x1002c520
jb 0x1002c4bf
cmp ecx, dword [esi + 8]
ja 0x1002c520
mov eax, dword [esi + 0x10]
mov ebx, dword [esp + 0x44]
add eax, dword [esi + 4]
je 0x1002c4d7
mov edx, dword [esp + 0x38]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edx
jmp 0x1002c4da
mov ecx, dword [esi + 0x10]
mov eax, ecx
add eax, 4
adc edx, 0
jne 0x1002c4e9
cmp eax, 4
jb 0x1002c520
cmp edx, dword [esi + 0xc]
ja 0x1002c520
jb 0x1002c4f5
cmp eax, dword [esi + 8]
ja 0x1002c520
add ecx, dword [esi + 4]
je 0x1002c527
mov dword [esi + 0x14], edx
mov dword [esi + 0x10], eax
movzx edx, byte [ecx + 3]
movzx eax, byte [ecx + 2]
shl edx, 8
add edx, eax
movzx eax, byte [ecx + 1]
shl edx, 8
add edx, eax
movzx eax, byte [ecx]
shl edx, 8
add edx, eax
jmp 0x1002c531
mov byte [esi], 0
xor al, al
jmp 0x1002c52b
mov al, byte [esp + 0x37]
xor edx, edx
test al, al
je 0x1002c592
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
add ecx, 4
adc eax, 0
mov dword [esp + 0x38], eax
jne 0x1002c548
cmp ecx, 4
jb 0x1002c592
cmp eax, dword [esi + 0xc]
ja 0x1002c592
jb 0x1002c554
cmp ecx, dword [esi + 8]
ja 0x1002c592
mov eax, dword [esi + 4]
add eax, dword [esi + 0x10]
mov dword [esp + 0x28], eax
je 0x1002c595
mov dword [esi + 0x10], ecx
mov ecx, dword [esp + 0x38]
mov dword [esi + 0x14], ecx
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 2]
shl ecx, 8
add ecx, eax
mov eax, dword [esp + 0x28]
shl ecx, 8
movzx eax, byte [eax + 1]
add ecx, eax
mov eax, dword [esp + 0x28]
shl ecx, 8
movzx eax, byte [eax]
add ecx, eax
jmp 0x1002c597
mov byte [esi], 0
xor ecx, ecx
cmp dword [esp + 0x1c], 0xffff
mov eax, dword [esp + 0x10]
cmove eax, edx
cmp dword [esp + 0x14], 0xffff
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
cmove eax, ecx
cmp dword [esp + 0xa0], 0
je 0x1002c60a
cmp eax, ecx
jne 0x1002c5cf
mov ecx, dword [esp + 0x10]
cmp ecx, edx
je 0x1002c60e
test ebx, ebx
je 0x1002c5e0
mov dword [ebx], 0x15
mov dword [ebx + 4], 0xa
cmp byte [esp + 0x27], 0
je 0x1002ce1a
cmp byte [esi + 1], 0
mov edi, dword [sym.imp.msvcrt.dll_free]
je 0x1002c5ff
push dword [esi + 4]
call edi
add esp, 4
push esi
call edi
add esp, 4
jmp 0x1002ce1a
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x1002cdd5
test eax, eax
jne 0x1002cdd5
mov cl, byte [esi]
test cl, cl
je 0x1002c787
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
add eax, 8
adc edx, 0
mov dword [esp + 0x38], edx
jne 0x1002c643
cmp eax, 8
jb 0x1002c787
cmp edx, dword [esi + 0xc]
ja 0x1002c787
jb 0x1002c657
cmp eax, dword [esi + 8]
ja 0x1002c787
mov edx, dword [esi + 4]
add edx, dword [esi + 0x10]
mov dword [esp + 0x28], edx
je 0x1002c78c
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x14], eax
movzx eax, byte [edx + 7]
cdq
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], edx
movzx eax, byte [eax + 6]
cdq
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
adc dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], edx
movzx eax, byte [eax + 5]
cdq
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
adc dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], edx
movzx eax, byte [eax + 4]
cdq
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
adc dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], edx
movzx eax, byte [eax + 3]
cdq
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
adc dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], edx
movzx eax, byte [eax + 2]
cdq
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
adc dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], edx
movzx eax, byte [eax + 1]
cdq
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
adc dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], edx
movzx eax, byte [eax]
cdq
add dword [esp + 0x1c], eax
adc dword [esp + 0x20], edx
jmp 0x1002c7ad
mov byte [esi], 0
xor cl, cl
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
test cl, cl
je 0x1002c8ec
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
add eax, 8
adc edx, 0
jne 0x1002c7c4
cmp eax, 8
jb 0x1002c8fc
cmp edx, dword [esi + 0xc]
ja 0x1002c8fc
jb 0x1002c7d8
cmp eax, dword [esi + 8]
ja 0x1002c8fc
mov ebx, dword [esi + 4]
add ebx, dword [esi + 0x10]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x44]
je 0x1002c901
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x14], edx
movzx eax, byte [eax + 7]
cdq
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], edx
movzx eax, byte [eax + 6]
cdq
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
adc dword [esp + 0x10], edx
shld dword [esp + 0x10], eax, 8
shl eax, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 5]
cdq
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
adc dword [esp + 0x10], edx
shld dword [esp + 0x10], eax, 8
shl eax, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 4]
cdq
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
adc dword [esp + 0x10], edx
shld dword [esp + 0x10], eax, 8
shl eax, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 3]
cdq
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
adc dword [esp + 0x10], edx
shld dword [esp + 0x10], eax, 8
shl eax, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 2]
cdq
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
adc dword [esp + 0x10], edx
shld dword [esp + 0x10], eax, 8
shl eax, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 1]
cdq
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
adc dword [esp + 0x10], edx
shld dword [esp + 0x10], eax, 8
shl eax, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax]
cdq
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
adc dword [esp + 0x10], edx
jmp 0x1002c916
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
mov byte [esi], 0
xor cl, cl
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x1c], eax
jne 0x1002cda1
mov edx, dword [esp + 0x20]
cmp edx, dword [esp + 0x10]
jne 0x1002cda1
test cl, cl
je 0x1002ca71
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
add eax, 8
adc edx, 0
jne 0x1002c94d
cmp eax, 8
jb 0x1002ca71
cmp edx, dword [esi + 0xc]
ja 0x1002ca71
jb 0x1002c961
cmp eax, dword [esi + 8]
ja 0x1002ca71
mov ebx, dword [esi + 4]
add ebx, dword [esi + 0x10]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x44]
je 0x1002ca76
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x14], edx
movzx eax, byte [eax + 7]
cdq
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], edx
movzx eax, byte [eax + 6]
cdq
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
adc dword [esp + 0x14], edx
shld dword [esp + 0x14], eax, 8
shl eax, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 5]
cdq
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
adc dword [esp + 0x14], edx
shld dword [esp + 0x14], eax, 8
shl eax, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 4]
cdq
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
adc dword [esp + 0x14], edx
shld dword [esp + 0x14], eax, 8
shl eax, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 3]
cdq
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
adc dword [esp + 0x14], edx
shld dword [esp + 0x14], eax, 8
shl eax, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 2]
cdq
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
adc dword [esp + 0x14], edx
shld dword [esp + 0x14], eax, 8
shl eax, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 1]
cdq
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
adc dword [esp + 0x14], edx
shld dword [esp + 0x14], eax, 8
shl eax, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax]
cdq
add dword [esp + 0x10], eax
adc dword [esp + 0x14], edx
jmp 0x1002ca97
mov byte [esi], 0
xor cl, cl
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
test cl, cl
je 0x1002cbaa
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
add eax, 8
adc edx, 0
jne 0x1002caae
cmp eax, 8
jb 0x1002cbba
cmp edx, dword [esi + 0xc]
ja 0x1002cbba
jb 0x1002cac2
cmp eax, dword [esi + 8]
ja 0x1002cbba
mov ebx, dword [esi + 4]
add ebx, dword [esi + 0x10]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x44]
je 0x1002cbbf
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x14], edx
movzx eax, byte [eax + 7]
cdq
mov ecx, eax
mov eax, dword [esp + 0x28]
shld edx, ecx, 8
shl ecx, 8
movzx eax, byte [eax + 6]
mov dword [esp + 0x18], edx
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc eax, edx
shld eax, ecx, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
shl ecx, 8
movzx eax, byte [eax + 5]
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc eax, edx
shld eax, ecx, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
shl ecx, 8
movzx eax, byte [eax + 4]
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc eax, edx
shld eax, ecx, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
shl ecx, 8
movzx eax, byte [eax + 3]
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc eax, edx
shld eax, ecx, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
shl ecx, 8
movzx eax, byte [eax + 2]
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc eax, edx
shld eax, ecx, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
shl ecx, 8
movzx eax, byte [eax + 1]
cdq
add ecx, eax
mov eax, dword [esp + 0x18]
adc eax, edx
shld eax, ecx, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
shl ecx, 8
movzx eax, byte [eax]
cdq
add ecx, eax
adc dword [esp + 0x18], edx
jmp 0x1002cc13
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov byte [esi], 0
xor cl, cl
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
test cl, cl
jne 0x1002cc07
test ebx, ebx
je 0x1002cbdd
mov dword [ebx], 0x14
mov dword [ebx + 4], 0
cmp byte [esp + 0x27], 0
je 0x1002ce1a
cmp byte [esi + 1], 0
mov edi, dword [sym.imp.msvcrt.dll_free]
je 0x1002cbfc
push dword [esi + 4]
call edi
add esp, 4
push esi
call edi
add esp, 4
jmp 0x1002ce1a
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x38]
cmp byte [esp + 0x27], 0
mov dword [esp + 0x28], ecx
je 0x1002cc3c
cmp byte [esi + 1], 0
mov eax, dword [sym.imp.msvcrt.dll_free]
je 0x1002cc36
push dword [esi + 4]
call eax
mov eax, dword [sym.imp.msvcrt.dll_free]
add esp, 4
push esi
call eax
add esp, 4
mov edx, dword [esp + 0x18]
cmp edx, 0x7fffffff
ja 0x1002c0a5
mov eax, dword [esp + 0x28]
jb 0x1002cc5b
cmp eax, 0xffffffff
ja 0x1002c0a5
mov ecx, dword [esp + 0x10]
mov esi, eax
add esi, ecx
mov ebx, edx
adc ebx, dword [esp + 0x14]
mov dword [esp + 0x38], ebx
cmp ebx, edx
mov ebx, dword [esp + 0x44]
jb 0x1002c0a5
ja 0x1002cc83
cmp esi, eax
jb 0x1002c0a5
add edi, dword [esp + 0x98]
mov eax, dword [esp + 0x38]
adc ebp, dword [esp + 0x9c]
cmp eax, ebp
jb 0x1002cc9f
ja 0x1002ccb1
cmp esi, edi
ja 0x1002ccb1
cmp dword [esp + 0xa0], 0
je 0x1002cccb
cmp esi, edi
jne 0x1002ccb1
cmp eax, ebp
je 0x1002cccb
test ebx, ebx
je 0x1002ce1a
mov dword [ebx], 0x15
mov dword [ebx + 4], 1
jmp 0x1002ce1a
mov eax, ecx
mov ebx, 0xb21642c9
mul ebx
mov ebp, 0x642c8590
mov dword [esp + 0x38], eax
mov esi, edx
mov eax, ecx
mul ebp
mov edi, eax
mov ebp, edx
mov eax, dword [esp + 0x14]
mul ebx
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0x14]
mov edx, 0x642c8590
mul edx
add ecx, esi
mov dword [esp + 0x38], eax
adc ebx, 0
add edi, ecx
mov ecx, dword [esp + 0x38]
adc ebp, 0
mov dword [esp + 0x48], edi
xor eax, eax
add ebx, ebp
mov ebp, dword [esp + 0x14]
adc eax, eax
add ecx, ebx
mov ebx, dword [esp + 0x10]
mov esi, ebx
adc edx, eax
sub esi, ecx
mov eax, ebp
sbb eax, edx
shrd esi, eax, 1
shr eax, 1
add esi, ecx
mov ecx, dword [esp + 0x20]
adc eax, edx
shrd esi, eax, 5
shr eax, 5
cmp ecx, eax
jb 0x1002cd6d
ja 0x1002cd4f
mov eax, dword [esp + 0x1c]
cmp eax, esi
jbe 0x1002cd71
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x1002ce1a
mov dword [ecx], 0x15
mov dword [ecx + 4], 0xb
jmp 0x1002ce1a
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x48]
push eax
call fcn.10030b40
add esp, 8
test eax, eax
je 0x1002ce1a
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x18]
mov byte [eax + 0x2c], 1
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], ebp
mov dword [eax + 0x24], ecx
jmp 0x1002ce1c
test ebx, ebx
je 0x1002cdb2
mov dword [ebx], 1
mov dword [ebx + 4], 0
cmp byte [esp + 0x27], 0
je 0x1002ce1a
cmp byte [esi + 1], 0
mov edi, dword [sym.imp.msvcrt.dll_free]
je 0x1002cdcd
push dword [esi + 4]
call edi
add esp, 4
push esi
call edi
add esp, 4
jmp 0x1002ce1a
test ebx, ebx
je 0x1002cde6
mov dword [ebx], 1
mov dword [ebx + 4], 0
cmp byte [esp + 0x27], 0
je 0x1002ce1a
cmp byte [esi + 1], 0
mov edi, dword [sym.imp.msvcrt.dll_free]
je 0x1002ce01
push dword [esi + 4]
call edi
add esp, 4
push esi
call edi
add esp, 4
jmp 0x1002ce1a
test ebx, ebx
je 0x1002ce1a
mov dword [ebx], 0xe
mov dword [ebx + 4], 0
xor eax, eax
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1005c833
add esp, 0x84
ret