Function at 0x1001f0b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc8
mov eax, dword [0x1007a00c]
xor eax, ebp
mov dword [esp + 0xc0], eax
cmp ecx, 2
jae 0x1001f814
mov ebx, ecx
movsd qword [esp + 0x78], xmm0
mov edx, dword [esp + 0x7c]
xor eax, eax
xor esi, esi
add esi, 0xffffffff
mov ecx, 0x100000
adc ecx, 0xffffffff
and ecx, edx
mov esi, ecx
or esi, 0x100000
mov edi, edx
shr edi, 0x14
mov dword [esp + 0x44], edi
and edi, 0x7ff
add edi, 0xfffffbcd
test edx, 0x7ff00000
mov edx, 0xfffffbce
cmovne edx, edi
mov dword [esp + 0x1c], ecx
cmove esi, ecx
bt esi, 0x14
mov edi, dword [esp + 0x78]
mov dword [esp + 8], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
jae 0x10020015
mov dword [esp + 0xc], edx
mov dword [esp + 4], esi
mov dword [esp + 0x20], edi
shl edi, 0xb
mov dword [esp + 0x30], edi
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa8], eax
test ebx, ebx
jne 0x10020033
mov eax, dword [esp + 0x14]
lea ecx, [eax - 1]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 8]
shld eax, esi, 1
lea edx, [esi + esi]
mov dword [esp], edx
lea ebx, [esi + esi]
inc ebx
mov edi, eax
mov dword [esp + 0x24], ecx
mov edx, ecx
mov esi, edi
shld edi, ebx, 0xa
shl ebx, 0xa
add edx, 0xfffffff6
test esi, 0xfffff000
je 0x1001f1a9
test edi, edi
mov dword [esp + 0x28], ebx
jns 0x1002007d
mov ecx, dword [esp + 0x1c]
or ecx, dword [esp + 8]
mov esi, dword [esp + 4]
mov ebx, dword [esp]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], edi
je 0x1001ffe6
add ebx, 0xffffffff
adc eax, 0xffffffff
mov ecx, dword [esp + 0x24]
sub ecx, edx
shld eax, ebx, cl
shl ebx, cl
xor edi, edi
test cl, 0x20
cmove edi, ebx
cmove ebx, eax
mov dword [esp], ebx
mov eax, dword [esp + 0x28]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb8], edx
xor eax, eax
lea ecx, [esp + 0x90]
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov dword [ecx + 8], eax
mov ebx, ecx
mov eax, 0xffffff8f
mov edx, dword [esp + 0xc]
sub eax, edx
mov ecx, 0xffffffab
sub ecx, edx
lea edx, [esp + 0x8c]
push edx
push ebx
push ecx
push eax
call fcn.100033c0
add esp, 0x10
mov eax, dword [esp + 0x20]
shld esi, eax, 0xb
mov dword [esp + 4], esi
mov ecx, dword [ebx + 4]
mov eax, ecx
mov dword [esp + 0x20], ecx
mul esi
mov dword [esp + 0x14], eax
mov edi, edx
mov esi, dword [esp + 0x30]
and esi, 0xfffff800
mov eax, ecx
mul esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], edx
mov ebx, dword [ebx]
mov eax, ebx
mov dword [esp + 8], ebx
mul dword [esp + 4]
mov ecx, edx
mov dword [esp + 4], eax
mov eax, ebx
mul esi
xor eax, eax
add edx, dword [esp + 4]
setb al
add edx, dword [esp + 0x30]
mov esi, 0
adc eax, esi
mov esi, dword [esp + 0xc]
lea ebx, [esp + 0x90]
add esi, dword [ebx + 8]
mov dword [esp + 0xc], esi
add ecx, dword [esp + 0x14]
mov esi, 0
adc edi, esi
add ecx, dword [esp + 0x24]
adc edi, esi
xor ebx, ebx
mov esi, 0x80000000
add edx, esi
adc ecx, eax
mov dword [esp + 0x70], ecx
adc edi, ebx
mov dword [esp + 0x74], edi
mov esi, dword [esp]
mov eax, esi
mov ebx, dword [esp + 0x20]
mul ebx
mov dword [esp + 4], edx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x18]
mov eax, ecx
mul ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x30], eax
mov eax, esi
mov esi, dword [esp + 8]
mul esi
mov edi, edx
mov dword [esp], eax
mov eax, ecx
mul esi
xor eax, eax
add edx, dword [esp]
setb al
add edx, dword [esp + 0x30]
mov dword [esp + 0x18], edx
mov ecx, 0
adc eax, ecx
mov dword [esp], eax
mov esi, dword [esp + 0x1c]
mov eax, esi
mul ebx
mov dword [esp + 0x54], edx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x28]
mov eax, ecx
mul ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x44], eax
mov eax, esi
mov ebx, dword [esp + 8]
mul ebx
mov esi, edx
mov dword [esp + 0x1c], eax
mov eax, ecx
mul ebx
xor eax, eax
add edx, dword [esp + 0x1c]
setb al
add edx, dword [esp + 0x44]
mov ebx, 0
adc eax, ebx
add esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
adc ecx, ebx
xor ebx, ebx
add esi, dword [esp + 0x20]
adc ecx, ebx
mov ebx, 0x80000000
add edx, ebx
adc esi, eax
mov eax, 0
adc ecx, eax
add esi, 1
mov dword [esp + 0x64], esi
adc ecx, eax
mov ebx, ecx
add edi, dword [esp + 0x24]
mov ecx, dword [esp + 4]
adc ecx, eax
add edi, dword [esp + 0x14]
adc ecx, eax
mov edx, 0x80000000
add dword [esp + 0x18], edx
adc edi, dword [esp]
adc ecx, eax
xor edx, edx
sub esi, edi
mov edi, ebx
sbb edi, ecx
add esi, 1
mov dword [esp + 8], esi
adc edi, edx
mov ecx, 0xffffffcb
sub ecx, dword [esp + 0xc]
xor eax, eax
inc eax
xor esi, esi
shld esi, eax, cl
mov dword [esp + 0x28], eax
shl eax, cl
mov edx, dword [esp + 0x64]
mov dword [esp + 0x54], ebx
shrd edx, ebx, cl
shr ebx, cl
mov dword [esp + 0x24], ecx
test cl, 0x20
cmove ebx, edx
cmovne esi, eax
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x60], eax
add eax, 0xffffffff
mov dword [esp + 0x5c], esi
adc esi, 0xffffffff
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x44], esi
and ecx, esi
mov esi, dword [esp + 0x64]
mov dword [esp + 0x30], eax
and esi, eax
imul eax, dword [esp + 0xc], 0x4d1
add eax, 0x23856
sar eax, 0xc
mov dword [esp + 0x1c], ebx
cmp dword [eax*4 + 0x1006c35c], ebx
lea ebx, [eax + 1]
cmova ebx, eax
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dword [eax], edx
mov eax, ebx
sar eax, 0x1f
and eax, ebx
mov dword [esp + 0x58], eax
mov edx, dword [ebx*4 + 0x1006c358]
mov dword [esp + 0x10], eax
mov dword [esp], edi
mov dword [esp + 0x18], ecx
mov dword [esp + 4], esi
test ebx, ebx
jle 0x1001f57b
mov dword [esp + 0xc], ebx
mov edi, edx
mov eax, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x20], edi
div edi
add al, 0x30
mov edi, ecx
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx]
mov ebx, esi
mov esi, dword [ebp + 8]
mov byte [esi + ecx], al
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
xor eax, eax
mov ecx, dword [esp + 0x24]
shld eax, edx, cl
mov dword [esp + 0x1c], edx
shl edx, cl
test cl, 0x20
cmovne eax, edx
mov ecx, 0
cmovne edx, ecx
mov dword [esp + 0x38], esi
lea ecx, [esi + 1]
mov esi, edx
add esi, ebx
adc eax, edi
mov edx, dword [ebp + 0xc]
mov dword [edx], ecx
mov edx, dword [esp + 8]
cmp esi, edx
mov dword [esp + 0x14], eax
sbb eax, dword [esp]
jb 0x1001fc55
mov eax, dword [esp + 0x20]
mov ecx, 0xcccccccd
mul ecx
mov edi, dword [esp + 8]
shr edx, 3
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
dec ebx
cmp esi, edi
mov edi, dword [esp]
sbb dword [esp + 0x14], edi
mov esi, dword [esp + 4]
jae 0x1001f49c
test byte [esp + 0x10], 1
je 0x1001fc4e
sub ebx, dword [esp + 0x8c]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
add ebx, dword [ecx]
mov dword [eax], ebx
mov eax, dword [ecx]
mov ecx, dword [ebp + 8]
mov byte [ecx + eax], 0
mov bl, 1
mov ecx, dword [esp + 0xc0]
xor ecx, ebp
call fcn.1002cad0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x1c], 0
mov ebx, dword [esp + 0x58]
mov eax, dword [esp]
mov edx, dword [esp + 8]
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 0xc], ebx
mov eax, esi
mov esi, 0xa
mul esi
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*2]
mov dword [esp + 4], eax
mov esi, eax
mov ecx, dword [esp + 0x24]
shrd esi, edi, cl
mov ebx, edi
shr ebx, cl
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov edx, 0xa
mul edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 8]
mov edx, 0xa
mul edx
test cl, 0x20
cmove ebx, esi
add bl, 0x30
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx]
mov esi, dword [ebp + 8]
mov byte [esi + ecx], bl
mov ecx, dword [esp]
lea ecx, [ecx + ecx*4]
lea esi, [edx + ecx*2]
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebx]
mov dword [esp + 0x38], ecx
lea edx, [ecx + 1]
mov dword [ebx], edx
mov ecx, esi
and edi, dword [esp + 0x44]
mov esi, dword [esp + 4]
and esi, dword [esp + 0x30]
mov edx, eax
mov dword [esp + 4], esi
cmp esi, eax
mov dword [esp + 0x18], edi
sbb edi, ecx
mov esi, dword [esp + 0x1c]
lea ebx, [esi + esi*4]
mov eax, dword [esp + 0x14]
lea eax, [eax + ebx*2]
mov dword [esp + 0x1c], eax
jb 0x1001f65a
mov ebx, dword [esp + 0xc]
dec ebx
mov edi, dword [esp + 4]
cmp edi, edx
mov esi, dword [esp + 0x18]
mov eax, esi
sbb eax, ecx
mov eax, ecx
mov ecx, esi
mov esi, edi
jae 0x1001f58e
jmp 0x1001f53c
mov dword [esp + 0x2c], esi
mov dword [esp + 0x50], ebx
mov dword [esp], ecx
mov ecx, dword [esp + 0x64]
sub ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x54]
sbb ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x28]
mov eax, edi
mov dword [esp + 8], edx
mul ecx
imul ebx, edi
add ebx, edx
mov edx, dword [esp + 0x1c]
imul ecx, edx
add ecx, ebx
mov ebx, eax
sub ebx, edi
mov esi, ecx
sbb esi, edx
mov dword [esp + 0x58], esi
add eax, edi
mov dword [esp + 0x10], eax
adc ecx, edx
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 8]
mov edi, dword [esp + 4]
sub eax, edi
mov edx, dword [esp]
mov esi, dword [esp + 0x18]
sbb edx, esi
mov ecx, dword [esp + 0x60]
cmp eax, ecx
sbb edx, dword [esp + 0x5c]
setb al
mov dword [esp + 0x34], eax
jb 0x1001f796
mov dword [esp + 0x4c], ebx
cmp edi, ebx
mov eax, esi
mov ebx, dword [esp + 0x58]
sbb eax, ebx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
jae 0x1001f79e
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x48], edi
mov dword [esp + 0x3c], esi
add edi, dword [esp + 0x60]
adc esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x4c]
cmp edi, ecx
mov eax, esi
sbb eax, ebx
jb 0x1001f741
mov eax, ecx
sub eax, dword [esp + 0x48]
mov dword [esp + 0x34], eax
mov edx, ebx
sbb edx, dword [esp + 0x3c]
mov dword [esp + 0x14], edi
mov edi, ebx
mov ebx, dword [esp + 0x14]
sub ebx, ecx
mov eax, esi
sbb eax, edi
cmp dword [esp + 0x34], ebx
mov edi, dword [esp + 0x14]
sbb edx, eax
jb 0x1001fe01
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x38]
dec byte [eax + ecx]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 8]
sub edx, edi
mov eax, dword [esp]
sbb eax, esi
cmp edx, ecx
mov ebx, eax
sbb ebx, dword [esp + 0x5c]
setb bl
mov dword [esp + 0x34], ebx
cmp edi, dword [esp + 0x4c]
mov ebx, esi
sbb ebx, dword [esp + 0x58]
jae 0x1001f796
cmp edx, ecx
sbb eax, dword [esp + 0x5c]
mov dword [esp + 0x48], edi
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x58]
jb 0x1001f79e
jmp 0x1001f6fd
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov ecx, esi
mov dword [esp + 0x14], edi
cmp edi, edx
mov ebx, dword [esp + 0x40]
sbb ecx, ebx
mov dword [esp + 0x38], esi
jae 0x1001f7bd
cmp byte [esp + 0x34], 0
je 0x1001fdb5
mov ecx, 0x14
mov edi, eax
mul ecx
mov ecx, dword [esp + 0x50]
lea ecx, [edx + ecx*4]
mov ebx, dword [esp + 0x14]
cmp ebx, eax
sbb esi, ecx
setae byte [esp + 0x20]
mov eax, edi
mov edx, 0xffffffd8
mul edx
sub edx, edi
mov esi, dword [esp + 0x2c]
shl esi, 3
lea esi, [esi + esi*4]
sub edx, esi
mov esi, dword [esp + 8]
add eax, esi
mov ecx, dword [esp]
adc edx, ecx
cmp eax, ebx
sbb edx, dword [esp + 0x38]
mov edx, esi
setae al
and al, byte [esp + 0x20]
mov dword [esp + 0x10], eax
jmp 0x1001f636
mov dword [esp + 0x18], edx
jne 0x1002009a
movsd qword [esp + 0x80], xmm0
mov ecx, dword [esp + 0x84]
xor ebx, ebx
xor eax, eax
add eax, 0xffffffff
mov edx, 0x100000
adc edx, 0xffffffff
and edx, ecx
mov eax, edx
or eax, 0x100000
mov esi, ecx
shr esi, 0x14
and esi, 0x7ff
add esi, 0xfffffbcd
test ecx, 0x7ff00000
cmove eax, edx
mov ecx, 0xfffffbce
cmovne ecx, esi
mov esi, dword [esp + 0x80]
bt eax, 0x14
jae 0x1002009f
mov edi, eax
mov eax, esi
shl eax, 0xb
mov dword [esp + 0xc], eax
lea eax, [esp + 0xb0]
mov dword [eax + 4], ebx
mov dword [eax], ebx
mov dword [eax + 8], ebx
mov ebx, eax
mov eax, 0xffffff8f
sub eax, ecx
mov edx, ecx
mov dword [esp + 4], ecx
mov ecx, 0xffffffab
sub ecx, edx
lea edx, [esp + 0xa0]
push edx
push ebx
push ecx
push eax
call fcn.100033c0
add esp, 0x10
shld edi, esi, 0xb
mov ecx, dword [ebx + 4]
mov eax, ecx
mul edi
mov dword [esp + 8], edx
mov dword [esp + 0x28], eax
mov eax, ecx
mov ecx, dword [esp + 0xc]
mul ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
mov esi, dword [ebx]
mov eax, esi
mul edi
mov dword [esp], edx
mov edi, eax
mov eax, esi
mul ecx
xor eax, eax
add edx, edi
setb al
add edx, dword [esp + 0x14]
mov ecx, 0
adc eax, ecx
mov ebx, dword [esp + 4]
lea esi, [esp + 0xb0]
add ebx, dword [esi + 8]
mov dword [esp + 4], ebx
mov esi, dword [esp]
add esi, dword [esp + 0x28]
mov edi, dword [esp + 8]
adc edi, ecx
add esi, dword [esp + 0x1c]
adc edi, ecx
add edx, 0x80000000
adc esi, eax
mov eax, esi
mov dword [esp], esi
adc edi, ecx
mov ecx, 0xffffffcb
sub ecx, ebx
xor ebx, ebx
inc ebx
xor edx, edx
shld edx, ebx, cl
mov dword [esp + 0x1c], ebx
shl ebx, cl
shrd eax, edi, cl
mov esi, edi
shr esi, cl
mov dword [esp + 0x28], ecx
test cl, 0x20
cmove esi, eax
cmovne edx, ebx
mov ecx, 0
cmovne ebx, ecx
mov dword [esp + 0x14], ebx
add ebx, 0xffffffff
mov dword [esp + 0x24], edx
adc edx, 0xffffffff
mov dword [esp + 0x30], edx
and edi, edx
mov dword [esp + 8], edi
mov dword [esp + 0x20], ebx
and dword [esp], ebx
imul eax, dword [esp + 4], 0x4d1
add eax, 0x23856
sar eax, 0xc
cmp dword [eax*4 + 0x1006c35c], esi
lea edx, [eax + 1]
cmova edx, eax
mov eax, dword [ebp + 0xc]
mov dword [eax], ecx
mov ecx, dword [edx*4 + 0x1006c358]
mov dword [esp + 0xc], edx
test edx, edx
jle 0x1001ff4c
mov dword [esp + 4], 0
mov ebx, dword [esp + 0x18]
mov eax, esi
xor edx, edx
div ecx
add al, 0x30
mov esi, dword [ebp + 8]
mov edi, dword [esp + 4]
mov byte [esi + edi], al
mov eax, dword [ebp + 0xc]
mov edi, dword [eax]
inc edi
mov esi, edi
mov dword [esp + 4], edi
mov dword [eax], edi
mov esi, edx
cmp ebx, 1
je 0x1001fbf1
dec ebx
mov eax, ecx
mov ecx, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
dec eax
mov ecx, edx
shr ecx, 3
mov dword [esp + 0xc], eax
inc eax
cmp eax, 1
jg 0x1001f9c5
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x100200ba
mov edx, dword [esp]
cmp edx, 2
mov edi, dword [esp + 8]
mov eax, edi
sbb eax, 0
mov ebx, dword [esp + 4]
jb 0x1001fc4e
cmp dword [esp + 0x18], 0
jle 0x1001fc4e
mov dword [esp + 0x44], 0
xor esi, esi
mov dword [esp + 4], esi
mov eax, edx
mov ecx, 0xa
mul ecx
lea edi, [edi + edi*4]
lea esi, [edx + edi*2]
mov dword [esp], eax
mov edi, eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], esi
shrd edi, esi, cl
shr esi, cl
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov edx, 0xa
mul edx
test cl, 0x20
mov ecx, esi
cmove ecx, edi
add cl, 0x30
mov edi, dword [ebp + 8]
mov byte [edi + ebx], cl
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 4]
lea ecx, [ecx + ecx*4]
lea edx, [edx + ecx*2]
mov dword [esp + 4], edx
mov edx, dword [ebp + 0xc]
mov ebx, dword [edx]
mov dword [esp + 0x54], ebx
inc ebx
mov dword [edx], ebx
mov edx, dword [esp]
and edx, dword [esp + 0x20]
mov esi, dword [esp + 8]
and esi, dword [esp + 0x30]
inc dword [esp + 0x44]
mov dword [esp + 0x1c], eax
cmp edi, 2
lea eax, [edi - 1]
mov dword [esp + 0x18], eax
mov edi, esi
mov esi, dword [esp + 4]
jl 0x1001fae2
cmp dword [esp + 0x1c], edx
mov eax, esi
sbb eax, edi
jb 0x1001fa48
mov dword [esp + 8], ecx
cmp dword [esp + 0x18], 0
jne 0x1001fc4e
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
sub eax, esi
mov ecx, dword [esp + 0x24]
mov ebx, ecx
sbb ebx, dword [esp + 4]
cmp esi, dword [esp + 0x14]
mov esi, dword [esp + 4]
mov dword [esp], edx
mov edx, esi
sbb edx, ecx
mov edx, dword [esp]
jae 0x1001fc4e
cmp dword [esp + 0x1c], eax
mov eax, esi
sbb eax, ebx
jae 0x1001fc4e
mov ebx, dword [esp + 0xc]
sub ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
sub eax, edx
mov ecx, dword [esp + 0x24]
sbb ecx, edi
cmp edx, eax
mov eax, edi
sbb eax, ecx
jae 0x1001fb7b
mov eax, edi
shld eax, edx, 1
lea ecx, [edx + edx]
mov esi, dword [esp + 0x14]
sub esi, ecx
mov ecx, dword [esp + 0x24]
sbb ecx, eax
mov edx, 0x14
mov eax, dword [esp + 0x38]
mul edx
cmp esi, eax
mov eax, dword [esp + 8]
lea eax, [edx + eax*4]
mov edx, dword [esp]
sbb ecx, eax
jae 0x1001fe5c
cmp dword [esp + 0x1c], edx
mov ecx, dword [esp + 4]
mov eax, ecx
sbb eax, edi
jae 0x1001fc4e
sub edx, dword [esp + 0x1c]
sbb edi, ecx
mov ecx, dword [esp + 0x14]
sub ecx, edx
mov eax, dword [esp + 0x24]
sbb eax, edi
cmp edx, ecx
sbb edi, eax
jb 0x1001fc4e
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x54]
mov al, byte [ecx + edx]
inc al
mov byte [ecx + edx], al
test edx, edx
jle 0x1001fbd9
inc edx
cmp al, 0x3a
jne 0x1001fbd9
mov ecx, dword [ebp + 8]
mov byte [ecx + edx - 1], 0x30
mov al, byte [ecx + edx - 2]
inc al
mov byte [ecx + edx - 2], al
dec edx
cmp edx, 1
jg 0x1001fbbd
mov eax, dword [ebp + 8]
cmp byte [eax], 0x3a
jne 0x1001fe5c
inc ebx
mov eax, dword [ebp + 8]
mov byte [eax], 0x31
jmp 0x1001fe5c
mov ebx, ecx
dec dword [esp + 0xc]
mov edx, ebx
mov ecx, dword [esp + 0x28]
shl edx, cl
xor edi, edi
test cl, 0x20
mov eax, edx
cmovne eax, edi
mov dword [esp + 0x18], eax
xor eax, eax
shld eax, ebx, cl
test cl, 0x20
cmovne eax, edx
mov edx, esi
shl edx, cl
test cl, 0x20
mov ebx, edx
cmovne ebx, edi
shld edi, esi, cl
mov esi, eax
mov eax, ebx
test cl, 0x20
cmovne edi, edx
mov edx, dword [esp + 0x18]
add eax, dword [esp]
adc edi, dword [esp + 8]
cmp edx, 3
mov ecx, esi
sbb ecx, 0
mov ecx, dword [esp + 4]
jae 0x1001fe16
xor ebx, ebx
jmp 0x1001f563
xor eax, eax
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
shld eax, edi, cl
shl edi, cl
test cl, 0x20
cmovne eax, edi
mov ecx, 0
cmovne edi, ecx
mov ecx, dword [esp + 0x64]
sub ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x54]
sbb ebx, dword [esp + 0x74]
mov dword [esp + 0x40], ecx
add dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x50], ebx
adc dword [esp + 0x50], 0xffffffff
add ecx, 1
mov dword [esp + 0x48], ecx
adc ebx, 0
mov dword [esp + 0x4c], ebx
mov ebx, edx
sub ebx, esi
mov ecx, dword [esp]
mov edx, dword [esp + 0x14]
sbb ecx, edx
mov dword [esp + 0x10], ebx
cmp ebx, edi
mov ebx, ecx
mov dword [esp + 0x34], eax
sbb ebx, eax
setb bl
mov dword [esp + 0x3c], ebx
cmp esi, dword [esp + 0x40]
sbb edx, dword [esp + 0x50]
mov dword [esp + 0x6c], edi
jae 0x1001fe68
cmp dword [esp + 0x10], edi
sbb ecx, dword [esp + 0x34]
mov edx, esi
mov eax, dword [esp + 0x14]
mov ecx, eax
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jb 0x1001fe76
mov edx, esi
mov dword [esp + 0x68], esi
mov ecx, eax
add edx, dword [esp + 0x6c]
mov dword [esp + 0x10], edx
adc ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x40]
cmp edx, ebx
mov dword [esp + 0x2c], ecx
sbb ecx, dword [esp + 0x50]
jb 0x1001fd4a
sub ebx, dword [esp + 0x68]
mov dword [esp + 0x3c], ebx
mov edi, dword [esp + 0x50]
mov edx, edi
sbb edx, eax
mov ebx, dword [esp + 0x10]
sub ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
sbb ecx, edi
cmp dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x40]
sbb edx, ecx
mov edi, dword [esp + 8]
jb 0x1001ff35
mov dword [esp + 0x40], ebx
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x38]
dec byte [ecx + edx]
mov edx, edi
sub edx, dword [esp + 0x10]
mov ecx, dword [esp]
sbb ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x6c]
cmp edx, edi
mov ebx, ecx
mov eax, dword [esp + 0x34]
sbb ebx, eax
setb bl
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x40]
cmp dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x2c]
sbb ebx, dword [esp + 0x50]
jae 0x1001ff5d
cmp edx, edi
sbb ecx, eax
mov edx, dword [esp + 0x10]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x2c]
mov eax, ecx
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jb 0x1001fe76
jmp 0x1001fcfc
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x60]
mov eax, esi
adc eax, dword [esp + 0x5c]
cmp ecx, edx
mov edx, eax
sbb edx, ebx
jb 0x1001fded
mov edx, dword [esp + 0x10]
sub edx, dword [esp + 0x14]
mov edi, ebx
sbb ebx, dword [esp + 0x38]
sub ecx, dword [esp + 0x10]
sbb eax, edi
cmp ecx, edx
sbb eax, ebx
mov eax, dword [esp + 0x20]
jae 0x1001f7bd
mov dword [esp + 0x10], 0
mov ecx, dword [esp]
mov edx, dword [esp + 8]
jmp 0x1001f636
mov dword [esp + 0x34], 0
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x3c]
jmp 0x1001f796
mov dword [esp + 4], ecx
mov ecx, edx
sub ecx, eax
mov edx, esi
sbb edx, edi
cmp eax, ecx
mov ecx, edi
sbb ecx, edx
mov ebx, esi
jae 0x1001ff72
mov ecx, edi
shld ecx, eax, 1
lea edx, [eax + eax]
mov esi, dword [esp + 0x18]
sub esi, edx
mov edx, ebx
sbb edx, ecx
mov dword [esp], 0
xor ecx, ecx
inc ecx
cmp ecx, esi
sbb dword [esp], edx
jae 0x1001ff72
mov ebx, dword [esp + 0xc]
sub ebx, dword [esp + 0xa0]
jmp 0x1001f54e
mov edx, esi
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov eax, ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x10], edx
cmp edx, ecx
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x4c]
sbb eax, edx
jae 0x1001fe95
cmp byte [esp + 0x3c], 0
je 0x1001fed9
xor eax, eax
inc eax
cmp eax, dword [esp + 0x10]
mov eax, 0
mov ecx, dword [esp + 0x2c]
sbb eax, ecx
mov eax, ecx
setb byte [esp + 0xc]
add edi, 0xfffffffc
mov edx, dword [esp]
adc edx, 0xffffffff
cmp edi, dword [esp + 0x10]
sbb edx, ecx
mov edi, dword [esp + 8]
setae cl
and cl, byte [esp + 0xc]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
jmp 0x1001f528
mov eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
adc edx, dword [esp + 0x2c]
cmp ecx, eax
mov eax, edx
sbb eax, dword [esp + 0x4c]
jb 0x1001ff2b
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
sbb eax, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
sub ecx, dword [esp + 0x48]
sbb edx, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x38]
sbb edx, dword [esp + 0xc]
jae 0x1001fe95
mov dword [esp + 0x10], 0
jmp 0x1001fecc
mov dword [esp + 0x3c], 0
mov edx, dword [esp + 0x68]
mov ecx, eax
mov ebx, dword [esp + 0xc]
jmp 0x1001fe76
mov dword [esp + 4], 0
mov ebx, dword [esp + 0x18]
jmp 0x1001fa0e
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
jmp 0x1001fe76
cmp eax, 2
mov ecx, edi
sbb ecx, 0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 4]
jb 0x1001fc4e
add eax, 0xffffffff
adc edi, 0xffffffff
sub ecx, eax
sbb ebx, edi
cmp eax, ecx
sbb edi, ebx
jb 0x1001fc4e
mov ecx, dword [ebp + 8]
mov al, byte [edx + ecx - 1]
inc al
mov byte [edx + ecx - 1], al
cmp edx, 2
jl 0x1001ffca
cmp al, 0x3a
jne 0x1001ffca
mov ecx, dword [ebp + 8]
mov byte [ecx + edx - 1], 0x30
mov al, byte [ecx + edx - 2]
inc al
mov byte [ecx + edx - 2], al
dec edx
cmp edx, 1
jg 0x1001ffae
mov eax, dword [ebp + 8]
cmp byte [eax], 0x3a
jne 0x1001fe58
mov eax, dword [ebp + 8]
mov byte [eax], 0x31
mov ebx, dword [esp + 0xc]
inc ebx
jmp 0x1001fe5c
test dword [esp + 0x44], 0x7fe
je 0x1001f1e6
mov esi, dword [esp + 0x14]
add esi, 0xfffffffe
mov ebx, dword [esp + 8]
shld ecx, ebx, 2
shl ebx, 2
mov eax, ecx
mov dword [esp + 0x24], esi
mov esi, dword [esp + 4]
jmp 0x1001f1e6
mov dword [esp + 0xc], edx
mov edx, esi
shld esi, edi, 1
add edi, edi
dec dword [esp + 0xc]
bt edx, 0x13
mov edx, esi
jb 0x1001f143
jmp 0x1002001b
cvtsd2ss xmm0, xmm0
lea ecx, [esp + 0x90]
movss dword [ecx], xmm0
lea edi, [esp + 0xa0]
lea esi, [esp + 0xb0]
mov edx, esi
push edi
call fcn.10065dd0
add esp, 4
mov eax, dword [esi]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 4]
mov dword [esp], eax
mov eax, dword [edi]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 4]
jmp 0x1001f23b
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
shld edi, esi, 1
add esi, esi
mov dword [esp + 0x28], esi
dec edx
test edi, edi
js 0x1001f1cd
jmp 0x10020081
call fcn.10065350
mov edi, eax
mov edx, edi
shld edx, esi, 1
add esi, esi
dec ecx
bt eax, 0x13
mov edi, edx
mov eax, edx
jb 0x1001f87b
jmp 0x100200a1
mov ebx, ecx
jmp 0x1001fbf7