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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x90
push esi
mov esi, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x5c], eax
xorps xmm2, xmm2
mov dword [esp + 0x44], eax
xorps xmm1, xmm1
mov dword [esp + 0x38], eax
mov ecx, esi
movsx edx, byte [esi]
mov dword [esp + 0x34], eax
mov dword [esp + 0x60], eax
mov eax, edx
mov dword [esp + 0x48], 0
push edi
sub eax, 0x2b
je 0x102128fe
sub eax, 2
jne 0x10212905
mov dword [esp + 0x64], 1
movsx edx, byte [esi + 1]
lea ecx, [esi + 1]
mov dword [esp + 0x28], ecx
mov esi, ecx
cmp edx, 0x30
jne 0x1021291a
movsx edx, byte [ecx + 1]
inc ecx
cmp edx, 0x30
je 0x10212910
xor eax, eax
mov dword [esp + 0x34], ecx
cmp ecx, esi
mov dword [esp + 0x5c], ecx
mov esi, ecx
setne al
mov dword [esp + 0x20], eax
cmp edx, 0x30
jl 0x10212943
cmp edx, 0x39
ja 0x10212943
movsx edx, byte [ecx + 1]
inc ecx
cmp edx, 0x30
jge 0x10212934
mov edi, ecx
sub edi, esi
xor esi, esi
cmp edx, 0x2e
jne 0x102129c3
movsx edx, byte [ecx + 1]
inc ecx
mov dword [esp + 0x18], ecx
test edi, edi
jne 0x10212991
mov eax, ecx
cmp edx, 0x30
jne 0x1021296c
movsx edx, byte [ecx + 1]
inc ecx
cmp edx, 0x30
je 0x10212962
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x34], esi
jne 0x1021297e
cmp ecx, eax
jne 0x1021297e
xor eax, eax
jmp 0x10212983
mov eax, 1
mov esi, ecx
mov dword [esp + 0x20], eax
sub esi, dword [esp + 0x18]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x28], ecx
cmp edx, 0x30
jl 0x102129af
nop word [eax + eax]
cmp edx, 0x39
ja 0x102129af
movsx edx, byte [ecx + 1]
inc ecx
cmp edx, 0x30
jge 0x102129a0
mov eax, ecx
sub eax, dword [esp + 0x28]
add edi, eax
mov eax, ecx
sub eax, dword [esp + 0x28]
add esi, eax
mov eax, dword [esp + 0x20]
test edi, edi
jne 0x102129e7
test eax, eax
jne 0x102129ef
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x102129d7
mov eax, dword [ebp + 8]
mov dword [ecx], eax
movsd qword [esp + 8], xmm2
fld qword [esp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp edi, 0x3b9aca00
ja 0x102129cb
cmp esi, 0x3b9aca00
ja 0x102129cb
mov eax, edi
mov dword [esp + 0x1c], 0
sub eax, esi
mov dword [esp + 0x2c], eax
cmp edx, 0x65
je 0x10212a15
cmp edx, 0x45
jne 0x10212abc
movsx edx, byte [ecx + 1]
mov dword [esp + 0x30], ecx
mov eax, edx
inc ecx
mov dword [esp + 0x20], 0
sub eax, 0x2b
je 0x10212a3a
sub eax, 2
jne 0x10212a3f
mov dword [esp + 0x20], 1
movsx edx, byte [ecx + 1]
inc ecx
mov dword [esp + 0x34], ecx
cmp edx, 0x30
jne 0x10212a52
movsx edx, byte [ecx + 1]
inc ecx
cmp edx, 0x30
je 0x10212a48
xor esi, esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], ecx
cmp edx, 0x30
jl 0x10212a78
cmp edx, 0x39
ja 0x10212a78
lea esi, [esi + esi*4]
inc ecx
lea esi, [esi - 0x18]
lea esi, [edx + esi*2]
movsx edx, byte [ecx]
cmp edx, 0x30
jge 0x10212a61
mov edx, dword [esp + 0x28]
mov eax, ecx
sub eax, edx
cmp eax, 9
jg 0x10212a8d
cmp esi, 0x4190ab00
jbe 0x10212a92
mov esi, 0x4190ab00
mov eax, esi
neg eax
cmp dword [esp + 0x20], 0
cmove eax, esi
mov dword [esp + 0x1c], eax
cmp ecx, edx
jne 0x10212abc
mov edx, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x18], edx
jne 0x10212abc
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x2c]
mov eax, esi
mov edx, dword [esp + 0x1c]
sub eax, edi
add edx, eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x1c], edx
test esi, esi
mov dword [esp + 0x28], edx
mov edx, edi
cmovg edx, esi
mov dword [esp + 0x20], edx
test eax, eax
je 0x10212ae6
mov dword [eax], ecx
test edi, edi
je 0x10212c8f
mov ecx, edi
jle 0x10212b42
mov esi, ecx
dec ecx
cmp ecx, edx
mov eax, ecx
mov edx, dword [esp + 0x5c]
cmovge eax, esi
cmp byte [eax + edx], 0x30
mov edx, dword [esp + 0x20]
jne 0x10212b40
test ecx, ecx
jg 0x10212af2
mov eax, edi
mov dword [esp + 0x30], ecx
sub eax, ecx
mov esi, ecx
add eax, dword [esp + 0x28]
cmp edx, ecx
mov dword [esp + 0x1c], eax
cmovle esi, edx
mov dword [esp + 0x68], eax
mov edx, ecx
mov dword [esp + 0x34], eax
xor ecx, ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], esi
xor edi, edi
jmp 0x10212bd4
mov ecx, esi
mov eax, dword [esp + 0x1c]
sub edi, ecx
add eax, edi
mov esi, ecx
cmp edx, ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x30], esi
cmovle esi, edx
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x34], eax
xor edi, edi
mov dword [esp + 0x68], eax
xor eax, eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edi
test edx, edx
jle 0x10212bd8
nop
cmp eax, 9
jge 0x10212ba4
mov ecx, dword [esp + 0x5c]
lea edx, [eax + 1]
cmp eax, esi
lea edi, [edi + edi*4]
lea edi, [edi - 0x18]
cmovge eax, edx
movsx ecx, byte [eax + ecx]
lea edi, [ecx + edi*2]
mov ecx, dword [esp + 0x20]
jmp 0x10212bca
cmp eax, 0x10
jge 0x10212bd4
mov ecx, dword [esp + 0x5c]
lea edx, [eax + 1]
cmp eax, esi
cmovge eax, edx
movsx ecx, byte [eax + ecx]
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
add ecx, 0xffffffd0
mov dword [esp + 0x20], ecx
mov eax, edx
mov edx, dword [esp + 0x14]
cmp eax, edx
jl 0x10212b80
mov dword [esp + 0x18], edi
mov eax, 0x10
movd xmm1, edi
cmp edx, eax
cvtdq2pd xmm1, xmm1
cmovl eax, edx
mov dword [esp + 0x20], eax
mov eax, edi
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x1039ae60]
mov eax, dword [esp + 0x20]
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 8], xmm1
cmp eax, 9
jle 0x10212c3e
mulsd xmm1, qword [eax*8 + 0x1035bf00]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x1039ae60]
addsd xmm1, xmm0
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 8], xmm1
cmp edx, 0xf
jg 0x10212cee
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll___fpe_flt_rounds]
mov edx, dword [esp + 0x1c]
movsd xmm1, qword [esp + 0x40]
cmp eax, 1
jne 0x10212ce9
test edx, edx
je 0x10212c8f
jle 0x10212cd0
cmp edx, 0x16
jle 0x10212c86
mov ecx, 0xf
sub ecx, dword [esp + 0x14]
lea eax, [ecx + 0x16]
cmp edx, eax
jg 0x10212ce9
mulsd xmm1, qword [ecx*8 + 0x1035bf48]
sub edx, ecx
mulsd xmm1, qword [edx*8 + 0x1035bf48]
cmp dword [esp + 0x64], 0
je 0x10212c9d
xorps xmm1, xmmword [0x1039af30]
movsd qword [esp + 8], xmm1
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x10213b9e
mov ecx, dword [edx + 4]
cmp ecx, 7
jle 0x10213b8e
push edx
push dword [0x103cc55c]
call dword [0x103cc56c]
add esp, 8
jmp 0x10213b9e
cmp edx, 0xffffffea
jl 0x10212ce9
lea eax, [edx*8]
mov ecx, 0x1035bf48
sub ecx, eax
divsd xmm1, qword [ecx]
jmp 0x10212c8f
xorps xmm2, xmm2
jmp 0x10212cf2
mov edx, dword [esp + 0x1c]
mov eax, edx
xor edx, edx
sub eax, dword [esp + 0x20]
add eax, dword [esp + 0x14]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x74], edx
test eax, eax
jle 0x10212e18
mov ecx, eax
and ecx, 0xf
je 0x10212d24
mulsd xmm1, qword [ecx*8 + 0x1035bf48]
movsd qword [esp + 8], xmm1
and eax, 0xfffffff0
je 0x10212f5f
cmp eax, 0x134
jg 0x102138b8
sar eax, 4
xor ecx, ecx
mov dword [esp + 0x20], ecx
cmp eax, 1
jle 0x10212db8
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x30]
test al, 1
je 0x10212d85
mov edi, dword [esp + 0x20]
mulsd xmm1, qword [edi*8 + 0x1035c730]
mov edi, dword [esp + 0x30]
movsd qword [esp + 8], xmm1
inc dword [esp + 0x20]
shr eax, 1
cmp eax, 1
ja 0x10212d52
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], edx
mov dword [esp + 0x30], eax
sub dword [esp + 0xc], 0x3500000
movsd xmm0, qword [esp + 8]
mulsd xmm0, qword [ecx*8 + 0x1035c730]
movsd qword [esp + 8], xmm0
mov eax, dword [esp + 0xc]
mov ecx, eax
and ecx, 0x7ff00000
cmp ecx, 0x7ca00000
ja 0x102138b8
cmp ecx, 0x7c900000
jbe 0x10212e0a
mov dword [esp + 0xc], 0x7fefffff
mov dword [esp + 8], 0xffffffff
jmp 0x10212f5f
add eax, 0x3500000
mov dword [esp + 0xc], eax
jmp 0x10212f5f
jns 0x10212f5f
neg eax
mov ecx, eax
and ecx, 0xf
je 0x10212e3c
divsd xmm1, qword [ecx*8 + 0x1035bf48]
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 8], xmm1
sar eax, 4
test eax, eax
je 0x10212f5f
cmp eax, 0x20
jge 0x10213acf
test al, 0x10
mov ecx, 0x6a
cmovne edx, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x74], edx
test eax, eax
jle 0x10212ee5
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x20], 0x1035c7a0
nop
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x30]
test al, 1
je 0x10212eae
mov edi, dword [esp + 0x20]
mulsd xmm1, qword [edi]
mov edi, dword [esp + 0x30]
movsd qword [esp + 8], xmm1
add dword [esp + 0x20], 8
shr eax, 1
jne 0x10212e80
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x2c]
movsd qword [esp + 0x40], xmm1
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], ecx
test edx, edx
je 0x10212f4b
mov edx, dword [esp + 0xc]
mov ecx, 0x6b
mov eax, edx
shr eax, 0x14
and eax, 0x7ff
sub ecx, eax
test ecx, ecx
jle 0x10212f4b
cmp ecx, 0x20
jl 0x10212f3a
mov dword [esp + 8], 0
cmp ecx, 0x35
jl 0x10212f24
mov dword [esp + 0xc], 0x3700000
movsd xmm1, qword [esp + 8]
jmp 0x10212f51
add ecx, 0xffffffe0
or eax, 0xffffffff
shl eax, cl
and edx, eax
mov dword [esp + 0xc], edx
movsd xmm1, qword [esp + 8]
jmp 0x10212f51
or eax, 0xffffffff
shl eax, cl
and dword [esp + 8], eax
movsd xmm1, qword [esp + 8]
jmp 0x10212f51
movsd xmm1, qword [esp + 0x40]
ucomisd xmm1, xmm2
lahf
test ah, 0x44
jnp 0x10213acf
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], esi
cmp ecx, 0x28
jle 0x10213041
mov edx, 0x12
nop dword [eax]
mov edi, dword [esp + 0x5c]
mov ecx, edx
mov dword [esp + 0x48], edx
dec edx
cmp edx, esi
mov eax, edx
cmovge eax, ecx
cmp byte [eax + edi], 0x30
mov edi, dword [esp + 0x18]
jne 0x10212fc1
test edx, edx
jg 0x10212f80
mov eax, dword [esp + 0x30]
sub eax, edx
mov dword [esp + 0x14], edx
add eax, dword [esp + 0x34]
cmp dword [esp + 0x28], edx
mov dword [esp + 0x1c], eax
cmovle edx, dword [esp + 0x28]
mov dword [esp + 0x20], edx
jmp 0x10212fe3
mov edx, dword [esp + 0x14]
sub edx, ecx
mov dword [esp + 0x14], ecx
add dword [esp + 0x1c], edx
cmp esi, ecx
cmovle ecx, esi
cmp dword [esp + 0x48], 9
mov esi, ecx
mov edx, esi
mov dword [esp + 0x20], edx
jae 0x1021303d
xor eax, eax
xor edi, edi
mov dword [esp + 0x18], eax
test edx, edx
jle 0x1021300a
nop
mov ecx, dword [esp + 0x5c]
lea eax, [eax + eax*4]
lea eax, [eax - 0x18]
movsx ecx, byte [edi + ecx]
inc edi
lea eax, [ecx + eax*2]
cmp edi, edx
jl 0x10212ff0
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x14]
mov esi, edx
cmp edi, ecx
jge 0x1021308b
mov edx, dword [esp + 0x5c]
mov esi, ecx
nop
movsx ecx, byte [edx + edi + 1]
lea eax, [eax + eax*4]
inc edi
lea eax, [eax - 0x18]
lea eax, [ecx + eax*2]
cmp edi, esi
jl 0x10213020
mov esi, dword [esp + 0x20]
mov edi, eax
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x14]
xor eax, eax
lea edx, [ecx + 8]
lea ecx, [eax + 1]
cmp edx, 0x12
jl 0x1021306f
mov eax, 0x38e38e39
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x20], eax
xor eax, eax
mov edx, dword [esp + 0x20]
add ecx, ecx
inc eax
cmp edx, ecx
jg 0x10213068
mov ecx, eax
call fcn.102117f0
mov ecx, eax
mov dword [esp + 0x28], ecx
test ecx, ecx
jne 0x10213091
xor eax, eax
mov dword [esp + 0x48], eax
jmp 0x10213b6f
mov edi, dword [esp + 0x18]
jmp 0x10213041
cmp dword [esp + 0x14], 9
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], 1
jg 0x102130ab
mov dword [esp + 0x48], eax
jmp 0x10213134
mov eax, dword [esp + 0x5c]
mov edi, 9
add eax, 9
mov dword [esp + 0x48], eax
cmp esi, edi
jle 0x102130ec
nop
movsx eax, byte [eax]
mov edx, 0xa
sub eax, 0x30
push eax
call fcn.10211890
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
test ecx, ecx
je 0x10213080
inc edi
cmp edi, esi
jl 0x102130c0
mov esi, dword [esp + 0x14]
inc eax
mov dword [esp + 0x48], eax
cmp edi, esi
jge 0x10213130
nop dword [eax]
movsx eax, byte [eax]
mov edx, 0xa
sub eax, 0x30
push eax
call fcn.10211890
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
test ecx, ecx
je 0x10213080
inc edi
cmp edi, esi
jl 0x10213100
mov dword [esp + 0x48], ecx
mov ecx, dword [ecx + 4]
call fcn.102117f0
mov esi, eax
mov dword [esp + 0x60], esi
test esi, esi
je 0x10213b5d
mov eax, dword [esp + 0x28]
lea ecx, [eax + 0xc]
mov dword [esp + 0x8c], ecx
nop dword [eax + eax]
mov eax, dword [eax + 0x10]
lea eax, [eax*4 + 8]
push eax
push ecx
lea eax, [esi + 0xc]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x3c]
add esp, 0xc
lea ecx, [esp + 8]
push eax
call fcn.102121f0
mov edi, eax
add esp, 4
mov dword [esp + 0x4c], edi
test edi, edi
je 0x10213b65
mov eax, dword [edi + 0x14]
mov ecx, dword [0x103fa164]
and eax, 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x102131bc
mov eax, dword [ecx]
mov dword [0x103fa164], eax
jmp 0x10213211
mov ecx, dword [0x103ce07c]
mov eax, ecx
sub eax, 0x103cea78
mov dword [esp + 0x3c], ecx
sar eax, 3
add eax, 4
cmp eax, 0x120
ja 0x102131e4
lea eax, [ecx + 0x20]
mov dword [0x103ce07c], eax
jmp 0x10213203
push 0x20
push dword [0x103cc55c]
call dword [0x103cc560]
mov ecx, eax
add esp, 8
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x10213b65
mov dword [ecx + 4], 1
mov dword [ecx + 8], 2
mov esi, dword [esp + 0x1c]
xor eax, eax
mov dword [ecx + 0xc], 0
test esi, esi
mov dword [ecx + 0x14], 1
mov dword [ecx + 0x10], 1
mov ecx, esi
cmovs ecx, eax
mov eax, esi
neg eax
mov dword [esp + 0x18], ecx
xor edx, edx
test esi, esi
mov esi, ecx
cmovs edx, eax
mov eax, dword [esp + 0x30]
test eax, eax
js 0x10213251
lea edi, [edx + eax]
jmp 0x10213255
sub esi, eax
mov edi, edx
mov eax, edi
mov dword [esp + 0x34], edi
mov ecx, esi
mov dword [esp + 0x20], edi
inc edi
inc esi
cmp edi, esi
cmovl ecx, eax
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x34]
cmp eax, dword [esp + 0x20]
cmovle ecx, eax
test ecx, ecx
jle 0x10213282
sub edi, ecx
sub esi, ecx
sub dword [esp + 0x20], ecx
test edx, edx
jle 0x102132f5
mov ecx, dword [esp + 0x3c]
call fcn.10211cd0
mov dword [esp + 0x3c], eax
test eax, eax
je 0x102132e8
mov edx, dword [esp + 0x4c]
mov ecx, eax
call fcn.10211b60
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 4]
cmp ecx, 7
jle 0x102132c4
push eax
push dword [0x103cc55c]
call dword [0x103cc56c]
add esp, 8
jmp 0x102132da
mov edx, dword [esp + 0x4c]
mov eax, dword [ecx*4 + 0x103fa160]
mov dword [edx], eax
mov eax, edx
mov dword [ecx*4 + 0x103fa160], eax
mov edx, dword [esp + 0x34]
mov eax, edx
mov dword [esp + 0x4c], eax
test edx, edx
jne 0x102132f9
mov dword [esp + 0x38], 0
jmp 0x10213b6f
mov eax, dword [esp + 0x4c]
test edi, edi
jle 0x10213312
mov edx, edi
mov ecx, eax
call fcn.10211df0
mov edi, eax
mov dword [esp + 0x4c], edi
test edi, edi
je 0x102132e8
jmp 0x10213316
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x18]
test edx, edx
jle 0x10213331
mov ecx, dword [esp + 0x60]
call fcn.10211cd0
mov dword [esp + 0x60], eax
test eax, eax
je 0x102132e8
jmp 0x10213335
mov eax, dword [esp + 0x60]
test esi, esi
jle 0x1021334c
mov edx, esi
mov ecx, eax
call fcn.10211df0
mov esi, eax
mov dword [esp + 0x60], esi
test esi, esi
je 0x102132e8
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x1021336f
mov ecx, dword [esp + 0x3c]
mov edx, eax
call fcn.10211df0
mov esi, eax
mov dword [esp + 0x3c], esi
test esi, esi
je 0x102132e8
jmp 0x10213373
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x60]
mov ecx, edi
call fcn.10211fa0
mov edi, eax
mov dword [esp + 0x38], edi
test edi, edi
je 0x10213b6f
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
mov dword [edi + 0xc], 0
mov edi, edx
mov ecx, dword [esi + 0x10]
sub edi, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x20], edi
je 0x102133b2
mov eax, edi
jmp 0x102133f5
mov edi, dword [esp + 0x38]
lea esi, [esi + ecx*4]
add edi, 0x14
add esi, 0x10
lea eax, [edi - 4]
mov edx, dword [eax + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esi]
cmp edx, ecx
jne 0x102133e7
sub esi, eax
cmp eax, edi
jbe 0x1021346e
mov ecx, dword [esi + eax - 4]
sub eax, 4
mov edx, dword [eax]
cmp edx, ecx
je 0x102133d0
cmp edx, ecx
sbb eax, eax
and eax, 0xfffffffe
inc eax
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
cmp dword [esp + 0x6c], ecx
jle 0x1021340b
test eax, eax
jle 0x10213818
test eax, eax
js 0x10213a39
je 0x102138f7
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x88]
call fcn.102120c0
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x84]
movaps xmm2, xmm0
movsd qword [esp + 0x40], xmm2
call fcn.102120c0
shl edi, 5
sub edi, dword [esp + 0x84]
add edi, dword [esp + 0x88]
mov eax, edi
movsd qword [esp + 0x20], xmm0
shl eax, 0x14
test edi, edi
jle 0x10213475
add dword [esp + 0x44], eax
movsd xmm2, qword [esp + 0x40]
jmp 0x1021347f
xor eax, eax
jmp 0x102133ed
sub dword [esp + 0x24], eax
movsd xmm0, qword [esp + 0x20]
divsd xmm2, xmm0
mov esi, dword [esp + 0xc]
movsd xmm0, qword [0x1039a6c8]
comisd xmm0, xmm2
jb 0x10213519
mov edx, dword [esp + 0x18]
test edx, edx
je 0x102134b1
movsd xmm3, qword [0x1039a668]
movaps xmm2, xmm3
jmp 0x10213568
mov eax, dword [esp + 8]
test eax, eax
jne 0x102134fa
test esi, 0xfffff
jne 0x10213507
movsd xmm0, qword [0x1039a668]
comisd xmm0, xmm2
jbe 0x102134e6
movsd xmm2, qword [0x1039a5e0]
movaps xmm3, xmm2
xorps xmm3, xmmword [0x1039af30]
jmp 0x10213568
mulsd xmm2, qword [0x1039a5e0]
movaps xmm3, xmm2
xorps xmm3, xmmword [0x1039af30]
jmp 0x10213568
cmp eax, 1
jne 0x10213507
test esi, esi
je 0x102138ab
movsd xmm2, qword [0x1039a668]
movsd xmm3, qword [0x1039ac90]
jmp 0x10213568
cmp dword [esp + 0x18], 0
mulsd xmm2, qword [0x1039a5e0]
movsd qword [esp + 0x20], xmm2
je 0x10213536
movsd qword [esp + 0x40], xmm2
jmp 0x10213546
movaps xmm0, xmm2
xorps xmm0, xmmword [0x1039af30]
movsd qword [esp + 0x40], xmm0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll___fpe_flt_rounds]
movsd xmm3, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x20]
mov edx, dword [esp + 0x18]
test eax, eax
jne 0x1021356e
addsd xmm3, qword [0x1039a5e0]
movsd qword [esp + 0x40], xmm3
mov edi, esi
and edi, 0x7ff00000
cmp edi, 0x7fe00000
jne 0x10213624
movsd xmm0, qword [esp + 8]
sub esi, 0x3500000
mov dword [esp + 0xc], esi
and esi, 0x7ff00000
sub esi, 0x3400000
movsd qword [esp + 0x78], xmm0
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], 0
movsd xmm0, qword [esp + 0x90]
mulsd xmm0, xmm3
addsd xmm0, qword [esp + 8]
movsd qword [esp + 8], xmm0
mov ecx, dword [esp + 0xc]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ca00000
jb 0x1021360b
cmp dword [esp + 0x7c], 0x7fefffff
jne 0x102135f6
cmp dword [esp + 0x78], 0xffffffff
je 0x102138b8
mov dword [esp + 0xc], 0x7fefffff
mov dword [esp + 8], 0xffffffff
jmp 0x1021372e
mov esi, dword [esp + 0x2c]
add ecx, 0x3500000
mov dword [esp + 0xc], ecx
movsd xmm1, qword [esp + 8]
jmp 0x102136c5
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x10213699
cmp edi, 0x6a00000
ja 0x10213699
movsd xmm0, qword [0x1039abe0]
comisd xmm0, xmm2
jb 0x1021367c
movaps xmm0, xmm2
call fcn.1024b640
mov edx, dword [esp + 0x18]
test eax, eax
mov ecx, 1
cmove eax, ecx
movd xmm2, eax
cvtdq2pd xmm2, xmm2
shr eax, 0x1f
addsd xmm2, qword [eax*8 + 0x1039ae60]
movaps xmm0, xmm2
test edx, edx
jne 0x10213682
xorps xmm0, xmmword [0x1039af30]
jmp 0x10213682
movsd xmm0, qword [esp + 0x40]
mov eax, 0x6b00000
movsd qword [esp + 0x40], xmm0
sub eax, edi
add dword [esp + 0x44], eax
movsd xmm3, qword [esp + 0x40]
lea eax, [edi - 0x3400000]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], eax
movsd xmm1, qword [esp + 0x50]
mulsd xmm1, xmm3
addsd xmm1, qword [esp + 8]
movsd qword [esp + 8], xmm1
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x14]
jne 0x1021372e
test esi, esi
jne 0x1021372e
mov eax, ecx
and eax, 0x7ff00000
cmp edi, eax
jne 0x1021372e
cvttsd2si eax, xmm2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm2, xmm0
test edx, edx
jne 0x1021370e
cmp dword [esp + 8], edx
jne 0x1021370e
test ecx, 0xfffff
jne 0x1021370e
movsd xmm0, qword [0x1039a588]
comisd xmm0, xmm2
jmp 0x10213728
movsd xmm0, qword [0x1039a5d8]
comisd xmm0, xmm2
ja 0x10213b0d
comisd xmm2, xmmword [0x1039a5e8]
ja 0x10213b0d
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x10213760
mov ecx, dword [edx + 4]
cmp ecx, 7
jle 0x10213750
push edx
push dword [0x103cc55c]
call dword [0x103cc56c]
add esp, 8
jmp 0x10213760
mov eax, dword [ecx*4 + 0x103fa160]
mov dword [edx], eax
mov dword [ecx*4 + 0x103fa160], edx
mov edx, dword [esp + 0x60]
test edx, edx
je 0x10213792
mov ecx, dword [edx + 4]
cmp ecx, 7
jle 0x10213782
push edx
push dword [0x103cc55c]
call dword [0x103cc56c]
add esp, 8
jmp 0x10213792
mov eax, dword [ecx*4 + 0x103fa160]
mov dword [edx], eax
mov dword [ecx*4 + 0x103fa160], edx
mov edx, dword [esp + 0x3c]
mov ecx, dword [edx + 4]
cmp ecx, 7
jle 0x102137b0
push edx
push dword [0x103cc55c]
call dword [0x103cc56c]
add esp, 8
jmp 0x102137c0
mov eax, dword [ecx*4 + 0x103fa160]
mov dword [edx], eax
mov dword [ecx*4 + 0x103fa160], edx
mov edx, dword [esp + 0x38]
mov ecx, dword [edx + 4]
cmp ecx, 7
jle 0x102137de
push edx
push dword [0x103cc55c]
call dword [0x103cc56c]
add esp, 8
jmp 0x102137ee
mov eax, dword [ecx*4 + 0x103fa160]
mov dword [edx], eax
mov dword [ecx*4 + 0x103fa160], edx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 4]
call fcn.102117f0
mov esi, eax
mov dword [esp + 0x60], esi
test esi, esi
je 0x10213b5d
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x8c]
jmp 0x10213160
cmp dword [esp + 0x18], 0
jne 0x10213b03
cmp dword [esp + 8], 0
jne 0x102138a2
test esi, 0xfffff
jne 0x102138a2
mov edi, dword [esp + 0x2c]
mov eax, esi
sar eax, 0x14
and eax, 0x7ff
sub eax, edi
cmp eax, 2
jl 0x102138a2
test edi, edi
je 0x10213867
mov eax, esi
and eax, 0x7ff00000
cmp eax, 0x6b00000
jae 0x10213867
mov dword [esp + 0x54], 0x3700000
jmp 0x10213877
and esi, 0x7ff00000
sub esi, 0x3400000
mov dword [esp + 0x54], esi
movsd xmm1, qword [esp + 8]
mov dword [esp + 0x50], 0
movsd xmm0, qword [esp + 0x50]
mulsd xmm0, qword [0x1039a5e0]
subsd xmm1, xmm0
movsd qword [esp + 8], xmm1
jmp 0x10213b09
mov dword [esp + 0x6c], ecx
jmp 0x10213a44
mov eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x14]
jmp 0x10213acd
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [esp + 0x64], 0
mov dword [esp + 0xc], 0x7ff00000
mov dword [esp + 8], 0
movsd xmm0, qword [esp + 8]
mov dword [eax], 0x22
je 0x10213b83
xorps xmm0, xmmword [0x1039af30]
movsd qword [esp + 8], xmm0
jmp 0x10212ca3
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
test edi, edi
je 0x1021395e
mov edx, dword [esp + 0x2c]
mov eax, esi
and eax, 0xfffff
cmp eax, 0xfffff
jne 0x10213975
test edx, edx
je 0x1021393c
mov eax, esi
and eax, 0x7ff00000
cmp eax, 0x6a00000
ja 0x1021393c
shr eax, 0x14
mov ecx, 0x6b
sub ecx, eax
or eax, 0xffffffff
shl eax, cl
mov ecx, dword [esp + 0x14]
jmp 0x1021393f
or eax, 0xffffffff
cmp dword [esp + 8], eax
jne 0x10213975
and esi, 0x7ff00000
mov dword [esp + 8], 0
add esi, 0x100000
jmp 0x10213aff
test esi, 0xfffff
jne 0x10213971
cmp dword [esp + 8], 0
je 0x10213aad
mov edx, dword [esp + 0x2c]
cmp dword [esp + 0x40], 0
je 0x10213b03
test edi, edi
je 0x102139cf
test edx, edx
je 0x102139a0
mov eax, esi
and eax, 0x7ff00000
cmp eax, 0x6b00000
jae 0x102139a0
mov dword [esp + 0x54], 0x3700000
jmp 0x102139b0
and esi, 0x7ff00000
sub esi, 0x3400000
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], 0
movsd xmm1, qword [esp + 0x50]
addsd xmm1, qword [esp + 8]
movsd qword [esp + 8], xmm1
jmp 0x10213b09
test edx, edx
je 0x102139eb
mov eax, esi
and eax, 0x7ff00000
cmp eax, 0x6b00000
jae 0x102139eb
mov dword [esp + 0x54], 0x3700000
jmp 0x102139fb
and esi, 0x7ff00000
sub esi, 0x3400000
mov dword [esp + 0x54], esi
movsd xmm1, qword [esp + 8]
mov dword [esp + 0x50], 0
movsd xmm0, qword [esp + 0x50]
subsd xmm1, xmm0
xorps xmm0, xmm0
ucomisd xmm1, xmm0
movsd qword [esp + 8], xmm1
lahf
test ah, 0x44
jp 0x10213b09
cmp dword [esp + 0x6c], ecx
jg 0x10213b17
jmp 0x10213ad2
cmp dword [esp + 0x18], 0
jne 0x10213b03
cmp dword [esp + 8], 0
jne 0x10213b03
test esi, 0xfffff
jne 0x10213b03
mov eax, esi
and eax, 0x7ff00000
cmp eax, 0x6b00000
jbe 0x10213b03
mov edi, dword [esp + 0x38]
cmp dword [edi + 0x14], 0
jne 0x10213a80
cmp edx, 1
jle 0x10213b03
mov edx, 1
mov ecx, edi
call fcn.10211df0
mov edi, eax
mov dword [esp + 0x38], edi
test edi, edi
je 0x10213b6f
mov edx, dword [esp + 0x3c]
mov ecx, edi
call fcn.10211f50
test eax, eax
jle 0x10213b03
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x2c], 0
je 0x10213af0
mov eax, esi
and eax, 0x7ff00000
cmp eax, 0x6b00000
ja 0x10213af0
cmp eax, 0x3700000
ja 0x10213b03
cmp dword [esp + 0x6c], ecx
jg 0x10213b17
xorps xmm0, xmm0
cmp dword [esp + 0x64], 0
je 0x10213b83
movsd xmm0, qword [0x1039ac78]
movsd qword [esp + 8], xmm0
jmp 0x10212ca3
and esi, 0x7ff00000
mov dword [esp + 8], 0xffffffff
dec esi
mov dword [esp + 0xc], esi
movsd xmm1, qword [esp + 8]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x14]
jle 0x10213b3a
mov edx, dword [esp + 0x5c]
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0xc]
call fcn.10212570
add esp, 4
test eax, eax
jne 0x10213b6f
movsd xmm1, qword [esp + 8]
mov esi, dword [esp + 0x74]
test esi, esi
je 0x10212c8f
mov dword [esp + 0x7c], 0x39500000
mov dword [esp + 0x78], 0
mulsd xmm1, qword [esp + 0x78]
jmp 0x10212c8f
mov dword [esp + 0x4c], 0
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
movsd xmm0, qword [0x1039ac90]
mov dword [eax], 0xc
movsd qword [esp + 8], xmm0
jmp 0x10212ca3
mov eax, dword [ecx*4 + 0x103fa160]
mov dword [edx], eax
mov dword [ecx*4 + 0x103fa160], edx
mov edx, dword [esp + 0x60]
test edx, edx
je 0x10213bd0
mov ecx, dword [edx + 4]
cmp ecx, 7
jle 0x10213bc0
push edx
push dword [0x103cc55c]
call dword [0x103cc56c]
add esp, 8
jmp 0x10213bd0
mov eax, dword [ecx*4 + 0x103fa160]
mov dword [edx], eax
mov dword [ecx*4 + 0x103fa160], edx
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x10213c02
mov ecx, dword [edx + 4]
cmp ecx, 7
jle 0x10213bf2
push edx
push dword [0x103cc55c]
call dword [0x103cc56c]
add esp, 8
jmp 0x10213c02
mov eax, dword [ecx*4 + 0x103fa160]
mov dword [edx], eax
mov dword [ecx*4 + 0x103fa160], edx
mov edx, dword [esp + 0x48]
test edx, edx
je 0x10213c34
mov ecx, dword [edx + 4]
cmp ecx, 7
jle 0x10213c24
push edx
push dword [0x103cc55c]
call dword [0x103cc56c]
add esp, 8
jmp 0x10213c34
mov eax, dword [ecx*4 + 0x103fa160]
mov dword [edx], eax
mov dword [ecx*4 + 0x103fa160], edx
mov edx, dword [esp + 0x38]
test edx, edx
je 0x102129dd
mov ecx, dword [edx + 4]
cmp ecx, 7
jle 0x10213c62
push edx
push dword [0x103cc55c]
call dword [0x103cc56c]
fld qword [esp + 0x10]
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx*4 + 0x103fa160]
fld qword [esp + 8]
pop edi
mov dword [edx], eax
mov dword [ecx*4 + 0x103fa160], edx
pop esi
mov esp, ebp
pop ebp
ret