Function at 0x10239d6e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1d0
mov dword [esp + 0x4c], edx
mov edx, ecx
mov eax, dword [0x1038000c]
xor eax, ebp
mov dword [esp + 0x1c8], eax
movzx eax, word [ecx + 0xb8]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0xbc]
mov ecx, dword [ecx + 0xd0]
mov dword [esp + 0x48], ecx
mov esi, dword [eax + 8]
mov dword [esp + 0x2c], edx
lea edi, [edx + 0xbc]
mov ecx, esi
call dword [section..00cfg]
mov ecx, edi
call esi
mov edi, dword [eax]
mov edx, dword [eax + 4]
mov ecx, edx
sub ecx, edi
sar ecx, 2
mov dword [esp + 0x50], ecx
mov ecx, edx
sub ecx, edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x60], edx
je 0x10238b04
js 0x1023b05e
cmp ecx, 0x1000
mov dword [esp + 0x54], edi
mov dword [esp + 0x10], ecx
jb 0x10238b38
lea esi, [ecx + 0x23]
push esi
mov edi, ecx
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
push edi
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push esi
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x10238b5c
mov dword [esp + 0x5c], 0
mov dword [esp + 8], 0
mov dword [esp], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
jmp 0x10238c80
mov esi, dword [sym.imp.mozglue.dll_moz_xmalloc]
push ecx
mov edi, ecx
call esi
add esp, 4
mov ebx, eax
push edi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push edi
call esi
add esp, 4
mov ecx, eax
mov dword [esp], ebx
mov dword [esp + 8], ecx
mov esi, dword [esp + 0x50]
lea eax, [ebx + esi*4]
mov dword [esp + 0x58], eax
lea eax, [ecx + esi*4]
mov dword [esp + 0x5c], eax
push dword [esp + 0x10]
push 0
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
xor edi, edi
inc edi
cmp esi, 2
mov eax, edi
cmovae eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov esi, dword [eax]
mov eax, dword [esi]
mov ebx, dword [eax + 0x10]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov esi, eax
mov eax, dword [eax]
mov ebx, dword [eax + 0x7c]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov eax, dword [eax]
mov dword [esp + 0xc], eax
movups xmm0, xmmword [esi + 4]
movups xmmword [esp + 0x1b8], xmm0
mov eax, dword [esi]
mov ebx, dword [eax + 0x74]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov ecx, dword [esp]
mov dword [ecx], eax
mov eax, dword [esi]
mov ebx, dword [eax + 0x7c]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov ecx, eax
call fcn.102807f0
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [eax], ebx
cmp dword [esp + 0x10], 8
jb 0x10238c74
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov esi, dword [eax + edi*4]
mov eax, dword [esi]
mov ebx, dword [eax + 0x10]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov ebx, eax
mov eax, dword [eax]
mov esi, dword [eax + 0x74]
mov ecx, esi
call dword [section..00cfg]
mov ecx, ebx
call esi
mov ecx, dword [esp]
mov dword [ecx + edi*4], eax
mov eax, dword [ebx]
mov esi, dword [eax + 0x7c]
mov ecx, esi
call dword [section..00cfg]
mov ecx, ebx
mov ebx, dword [esp + 0x10]
call esi
mov ecx, eax
call fcn.102807f0
cmp eax, ebx
cmova ebx, eax
mov ecx, dword [esp + 8]
mov dword [ecx + edi*4], eax
inc edi
cmp dword [esp + 4], edi
jne 0x10238c0e
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x54]
mov eax, dword [eax]
mov ebx, dword [eax]
mov eax, dword [ebx]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [section..00cfg]
mov ecx, ebx
call esi
mov esi, eax
mov eax, dword [eax]
mov ebx, dword [eax + 0x7c]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
cmp byte [eax + 0x7c], 2
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
jb 0x10238dc6
cmp byte [eax + 0x7d], 1
jbe 0x10238dc6
xor ebx, ebx
mov esi, dword [esp + 0x44]
cmp esi, 0xe4
jg 0x10238e1f
lea eax, [esi - 0x5b]
cmp eax, 0x35
mov edi, dword [esp]
ja case.default.0x10238ce5
jmp dword [eax*4 + 0x103104c4]
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x10238d1f
xor esi, esi
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x10]
mov edi, dword [esp]
mov ecx, dword [edi]
add ecx, esi
call fcn.1022b550
fstp dword [esp + 0x7c]
movss xmm0, dword [esp + 0x7c]
movss dword [esp + 0x10], xmm0
mov ecx, dword [edi + 4]
add ecx, esi
call fcn.1022b550
fstp dword [esp + 0x78]
movss xmm1, dword [esp + 0x78]
movss dword [esp + 0x30], xmm1
movss xmm0, dword [esp + 0x10]
divss xmm0, xmm1
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
add esp, 8
fstp dword [esp + 0x74]
movss xmm1, dword [esp + 0x30]
mulss xmm1, dword [esp + 0x74]
movss xmm0, dword [esp + 0x10]
subss xmm0, xmm1
mov eax, dword [esp + 4]
movss dword [eax + esi], xmm0
mov dword [eax + esi + 4], 1
add esi, 8
dec ebx
jne 0x10238d3b
jmp 0x1023abd9
mov eax, dword [esp + 0x2c]
movzx eax, word [eax + 0xb8]
cmp eax, 0x82
je 0x10238cc4
cmp dword [esp + 0x60], edi
je 0x10238cc4
xor esi, esi
inc esi
mov eax, dword [esp + 0x50]
cmp eax, 2
cmovae esi, eax
xor edi, edi
cmp dword [ecx + edi*4], edx
jne 0x10238e04
inc edi
cmp esi, edi
jne 0x10238df5
jmp 0x10238cc4
mov eax, dword [esp]
mov ecx, dword [eax + edi*4]
mov ebx, edx
call fcn.1023b070
mov edx, ebx
mov ecx, dword [esp + 8]
mov ebx, dword [esp]
mov dword [ebx + edi*4], eax
jmp 0x10238dfa
add esi, 0xffffff1b
cmp esi, 3
mov edi, dword [esp]
jae case.0x10238ce5.98
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x10238e5c
xor eax, eax
mov ecx, dword [esp + 0x10]
mov dword [ebx + eax*8], 0
mov dword [ebx + eax*8 + 4], 1
inc eax
cmp ecx, eax
jne 0x10238e71
mov ecx, dword [esp + 8]
mov edi, dword [esp]
test ecx, ecx
je 0x10238eba
mov eax, dword [esp + 0x5c]
sub eax, ecx
cmp eax, 0x1000
jb 0x10238eb0
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x1023b063
mov ecx, eax
push ecx
call dword [sym.imp.mozglue.dll_free]
add esp, 4
test edi, edi
je 0x10238ee8
mov eax, dword [esp + 0x58]
sub eax, edi
cmp eax, 0x1000
jb 0x10238ede
mov eax, dword [edi - 4]
add edi, 0xfffffffc
sub edi, eax
cmp edi, 0x20
jae 0x1023b063
mov edi, eax
push edi
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov ecx, dword [esp + 0x1c8]
xor ecx, ebp
call fcn.10212780
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp esi, 0x45
je 0x1023abe6
cmp esi, 0x4c
jne case.0x10238ce5.98
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x10238f45
mov dword [esp + 4], ebx
xor edi, edi
mov ebx, dword [esp + 0x10]
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x70]
movss xmm0, dword [esp + 0x70]
movss dword [esp + 0x10], xmm0
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b550
movss xmm2, dword [esp + 0x10]
fstp dword [esp + 0x6c]
xorps xmm1, xmm1
ucomiss xmm1, xmm2
ja 0x10238fe3
movss xmm0, dword [esp + 0x6c]
ucomiss xmm2, xmm1
jne 0x10238fa8
jp 0x10238fa8
ucomiss xmm1, xmm0
jae 0x10238fe3
cvtss2sd xmm0, xmm0
xorps xmm1, xmm1
cvtss2sd xmm1, xmm2
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
add esp, 0x10
mov eax, dword [esp + 4]
fstp dword [eax + edi]
mov dword [eax + edi + 4], 1
add edi, 8
dec ebx
jne 0x10238f61
jmp 0x1023acd5
mov eax, dword [esp + 4]
add eax, edi
lea ecx, [esp + 0x1b8]
mov edx, dword [esp + 0x48]
push eax
push dword [esp + 0x50]
push dword [esp + 0x14]
call fcn.1023b3d0
add esp, 0xc
jmp 0x10238fd8
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x1023903a
mov dword [esp + 4], ebx
xor edi, edi
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
cmp eax, 4
je 0x102390bb
cmp eax, 3
je 0x102390e0
cmp eax, 1
jne 0x10239116
mov esi, dword [esp]
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x84]
movss xmm0, dword [esp + 0x84]
movss dword [esp + 0x10], xmm0
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x80]
movss xmm0, dword [esp + 0x10]
minss xmm0, dword [esp + 0x80]
mov ecx, dword [esp + 4]
movss dword [ecx + edi], xmm0
jmp 0x1023910a
mov esi, dword [esp]
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x10], eax
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov ecx, dword [esp + 0x10]
cmp ecx, eax
cmovb eax, ecx
jmp 0x10239103
mov esi, dword [esp]
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x10], eax
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov ecx, dword [esp + 0x10]
cmp ecx, eax
cmovl eax, ecx
mov ecx, dword [esp + 4]
mov dword [ecx + edi], eax
mov eax, dword [esp + 0xc]
mov dword [ecx + edi + 4], eax
mov ecx, dword [esp + 8]
add edi, 8
dec ebx
jne 0x1023905b
jmp 0x1023acd9
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x10239158
mov dword [esp + 4], ebx
xor edi, edi
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
cmp edx, 4
je 0x102391d9
cmp edx, 3
je 0x102391fb
cmp edx, 1
jne 0x1023922e
mov esi, dword [esp]
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x8c]
movss xmm0, dword [esp + 0x8c]
movss dword [esp + 0x10], xmm0
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x88]
movss xmm0, dword [esp + 0x10]
maxss xmm0, dword [esp + 0x88]
mov eax, dword [esp + 4]
movss dword [eax + edi], xmm0
jmp 0x10239222
mov eax, dword [esp]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.1022b540
mov esi, eax
mov eax, dword [esp]
mov ecx, dword [eax]
add ecx, edi
call fcn.1022b540
cmp eax, esi
cmova esi, eax
jmp 0x1023921b
mov eax, dword [esp]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.1022b540
mov esi, eax
mov eax, dword [esp]
mov ecx, dword [eax]
add ecx, edi
call fcn.1022b540
cmp eax, esi
cmovg esi, eax
mov eax, dword [esp + 4]
mov dword [eax + edi], esi
mov edx, dword [esp + 0xc]
mov dword [eax + edi + 4], edx
mov ecx, dword [esp + 8]
add edi, 8
dec ebx
jne 0x10239179
jmp 0x1023acd9
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x10239270
xor esi, esi
mov ecx, dword [esp + 8]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x10]
mov edi, dword [esp]
mov eax, dword [esp + 0xc]
cmp eax, 4
je 0x1023935e
cmp eax, 3
je 0x1023939c
cmp eax, 1
jne 0x1023945b
mov ecx, dword [edi]
add ecx, esi
call fcn.1022b550
fstp dword [esp + 0x10c]
movss xmm0, dword [esp + 0x10c]
movss dword [esp + 0x30], xmm0
mov ecx, dword [edi + 4]
add ecx, esi
call fcn.1022b550
fstp dword [esp + 0x108]
movss xmm0, dword [esp + 0x108]
movaps xmmword [esp + 0x10], xmm0
mov ecx, dword [edi + 8]
add ecx, esi
call fcn.1022b550
movaps xmm3, xmmword [esp + 0x10]
fstp dword [esp + 0x104]
movss xmm0, dword [esp + 0x104]
ucomiss xmm3, xmm0
jbe 0x1023940d
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0x1a4]
push eax
call fcn.10272d10
mov eax, dword [esp + 0x1a4]
test eax, eax
mov ecx, 0x10369b5f
cmove eax, ecx
mov ecx, dword [esp + 0x4c]
push eax
push str.operation_result_is_undefined_for_the_values_passed_in
lea eax, [esp + 0x1c0]
push eax
call fcn.1022c3a0
mov ecx, dword [esp + 4]
mov dword [ecx + esi], 0
jmp 0x1023944f
mov dword [esp + 0x10], ebx
mov ecx, dword [edi]
add ecx, esi
call fcn.1022b540
mov dword [esp + 0x30], eax
mov ecx, dword [edi + 4]
add ecx, esi
call fcn.1022b540
mov ebx, eax
mov ecx, dword [edi + 8]
add ecx, esi
call fcn.1022b540
cmp ebx, eax
ja 0x102393c7
mov ecx, dword [esp + 0x30]
cmp ecx, eax
cmovb eax, ecx
cmp ecx, ebx
cmovbe eax, ebx
jmp 0x10239441
mov dword [esp + 0x10], ebx
mov ecx, dword [edi]
add ecx, esi
call fcn.1022b540
mov dword [esp + 0x30], eax
mov ecx, dword [edi + 4]
add ecx, esi
call fcn.1022b540
mov ebx, eax
mov ecx, dword [edi + 8]
add ecx, esi
call fcn.1022b540
cmp ebx, eax
jle 0x10239433
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0x1a4]
push eax
call fcn.10272d10
mov eax, dword [esp + 0x1a4]
test eax, eax
mov ecx, 0x10369b5f
cmove eax, ecx
mov ecx, dword [esp + 0x4c]
push eax
push str.operation_result_is_undefined_for_the_values_passed_in
lea eax, [esp + 0x1c0]
push eax
call fcn.1022c3a0
mov ecx, dword [esp + 4]
mov dword [ecx + esi], 0
jmp 0x10239448
movss xmm2, dword [esp + 0x30]
minss xmm0, xmm2
movaps xmm1, xmm3
cmpltss xmm1, xmm2
andps xmm0, xmm1
andnps xmm1, xmm3
orps xmm1, xmm0
mov ecx, dword [esp + 4]
movss dword [ecx + esi], xmm1
jmp 0x1023944f
mov ecx, dword [esp + 0x30]
cmp ecx, eax
cmovl eax, ecx
cmp ecx, ebx
cmovle eax, ebx
mov ecx, dword [esp + 4]
mov dword [ecx + esi], eax
mov edi, dword [esp]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [ecx + esi + 4], eax
mov ecx, dword [esp + 8]
add esi, 8
dec ebx
jne 0x10239294
jmp 0x1023abdd
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x1023949d
xor esi, esi
mov edx, dword [esp + 0xc]
dec edx
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edx
mov edi, esi
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov esi, dword [eax + 8]
mov eax, dword [esi]
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov esi, eax
mov eax, dword [eax]
mov ebx, dword [eax + 0x7c]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
cmp dword [eax], 1
jne 0x10239577
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x118]
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x114]
mov ecx, dword [esi + 8]
mov esi, edi
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x110]
movss xmm0, dword [esp + 0x110]
movss xmm1, dword [0x102c3370]
subss xmm1, xmm0
mulss xmm1, dword [esp + 0x118]
mulss xmm0, dword [esp + 0x114]
addss xmm0, xmm1
mov ecx, dword [esp + 4]
movss dword [ecx + edi], xmm0
xor eax, eax
inc eax
mov dword [ecx + esi + 4], eax
add esi, 8
dec dword [esp + 0x10]
jne 0x102394bb
jmp 0x1023abd6
mov eax, dword [esp]
mov ecx, dword [eax + 8]
mov esi, edi
add ecx, edi
call fcn.1022b5a0
mov edx, dword [esp + 0xc]
cmp edx, 4
ja case.0x10239591.1
mov ebx, eax
jmp dword [edx*4 + 0x1031059c]
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x120]
movss xmm0, dword [esp + 0x120]
movss dword [esp + 0x2c], xmm0
mov ecx, dword [esi + 4]
mov esi, edi
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x11c]
test bl, bl
jne 0x10239686
mov ecx, dword [esp + 4]
movss xmm0, dword [esp + 0x2c]
jmp 0x10239693
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x2c], eax
mov ecx, dword [esi + 4]
mov esi, dword [esp + 4]
add ecx, edi
call fcn.1022b540
test bl, bl
mov ecx, esi
mov esi, edi
cmove eax, dword [esp + 0x2c]
mov dword [ecx + edi], eax
mov eax, 3
jmp 0x10239561
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x2c], eax
mov ecx, dword [esi + 4]
mov esi, dword [esp + 4]
add ecx, edi
call fcn.1022b540
test bl, bl
mov ecx, esi
mov esi, edi
cmove eax, dword [esp + 0x2c]
mov dword [ecx + edi], eax
mov eax, 4
jmp 0x10239561
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b5a0
mov bh, al
mov ecx, dword [esi + 4]
mov esi, edi
add ecx, edi
call fcn.1022b5a0
movzx ecx, bh
movzx eax, al
test bl, bl
cmove eax, ecx
mov ecx, dword [esp + 4]
mov byte [ecx + edi], al
mov eax, 5
jmp 0x10239561
movss xmm0, dword [esp + 0x11c]
mov ecx, dword [esp + 4]
movss dword [ecx + esi], xmm0
jmp 0x1023955e
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x102396d0
xor esi, esi
mov dword [esp + 4], ebx
mov edi, dword [esp + 0x10]
mov ebx, dword [esp]
mov ecx, dword [ebx + 4]
add ecx, esi
call fcn.1022b550
fstp dword [esp + 0x94]
movss xmm0, dword [esp + 0x94]
movaps xmmword [esp + 0x10], xmm0
mov ecx, dword [ebx]
add ecx, esi
call fcn.1022b550
fstp dword [esp + 0x90]
movaps xmm1, xmmword [esp + 0x10]
cmpltss xmm1, dword [esp + 0x90]
movss xmm0, dword [0x102c3370]
andnps xmm1, xmm0
mov eax, dword [esp + 4]
movss dword [eax + esi], xmm1
mov dword [eax + esi + 4], 1
add esi, 8
dec edi
jne 0x102396ec
jmp 0x10239fa9
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x10239784
mov dword [esp + 4], ebx
xor edi, edi
mov ebx, dword [esp + 0x10]
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x12c]
movss xmm0, dword [esp + 0x12c]
movss dword [esp + 0x10], xmm0
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x128]
movss xmm0, dword [esp + 0x128]
movss dword [esp + 0x30], xmm0
mov ecx, dword [esi + 8]
add ecx, edi
call fcn.1022b550
movss xmm2, dword [esp + 0x30]
movss xmm1, dword [esp + 0x10]
fstp dword [esp + 0x124]
ucomiss xmm1, xmm2
jae 0x10239868
movss xmm0, dword [esp + 0x124]
subss xmm0, xmm1
subss xmm2, xmm1
divss xmm0, xmm2
movss xmm1, dword [0x102c3370]
minss xmm1, xmm0
xorps xmm2, xmm2
cmpltss xmm2, xmm0
andps xmm2, xmm1
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm2, xmm2
movss xmm1, dword [0x10307954]
subss xmm1, xmm2
mulss xmm1, xmm0
mov eax, dword [esp + 4]
movss dword [eax + edi], xmm1
mov dword [eax + edi + 4], 1
add edi, 8
dec ebx
jne 0x102397a0
jmp 0x1023acd5
mov eax, dword [esp + 4]
add eax, edi
lea ecx, [esp + 0x1b8]
mov edx, dword [esp + 0x48]
push eax
push dword [esp + 0x50]
push dword [esp + 0x14]
call fcn.1023b3d0
add esp, 0xc
jmp 0x10239859
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x102398bf
xor esi, esi
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x10]
mov edi, dword [esp]
mov ecx, dword [edi]
add ecx, esi
call fcn.1022b550
fstp dword [esp + 0x138]
movss xmm0, dword [esp + 0x138]
movss dword [esp + 0x10], xmm0
mov ecx, dword [edi + 4]
add ecx, esi
call fcn.1022b550
fstp dword [esp + 0x134]
mov ecx, dword [edi + 8]
add ecx, esi
call fcn.1022b550
fstp dword [esp + 0x130]
movss xmm0, dword [esp + 0x10]
mulss xmm0, dword [esp + 0x134]
addss xmm0, dword [esp + 0x130]
mov eax, dword [esp + 4]
movss dword [eax + esi], xmm0
mov dword [eax + esi + 4], 1
add esi, 8
dec ebx
jne 0x102398db
jmp 0x1023abd9
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x10239983
mov dword [esp + 4], ebx
xor edi, edi
mov ebx, dword [esp + 0x10]
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x13c]
movss xmm0, dword [esp + 0x13c]
movss dword [esp + 0x10], xmm0
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
cmp eax, 0x81
jge 0x10239a31
xorps xmm0, xmm0
cmp eax, 0xffffff82
jl 0x10239a11
movss xmm0, dword [esp + 0x10]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
push eax
push 0x3ff00000
push 0
call sub.api_ms_win_crt_math_l1_1_0.dll_ldexp
add esp, 0xc
fstp qword [esp + 0x168]
movsd xmm0, qword [esp + 0x10]
mulsd xmm0, qword [esp + 0x168]
cvtsd2ss xmm0, xmm0
mov eax, dword [esp + 4]
movss dword [eax + edi], xmm0
mov dword [eax + edi + 4], 1
add edi, 8
dec ebx
jne 0x1023999f
jmp 0x1023acd5
mov eax, dword [esp + 4]
add eax, edi
lea ecx, [esp + 0x1b8]
mov edx, dword [esp + 0x48]
push eax
push dword [esp + 0x50]
push dword [esp + 0x14]
call fcn.1023b3d0
add esp, 0xc
jmp 0x10239a22
lea edi, [edx*8]
xor esi, esi
dec esi
cmp edx, 0x20000000
cmovb esi, edi
mov ebx, edx
call fcn.1025c190
mov ecx, eax
push esi
call fcn.1021aad0
mov esi, eax
test ebx, ebx
je 0x10239a8e
mov ebx, esi
mov ecx, ebx
call fcn.1022b530
add ebx, 8
add edi, 0xfffffff8
jne 0x10239a7f
call fcn.1025c190
mov ecx, eax
push 8
call fcn.1021aad0
mov edi, eax
mov ecx, eax
call fcn.1022b530
xorps xmm1, xmm1
xorps xmm0, xmm0
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x10239b69
mov dword [esp + 4], edi
xor edi, edi
mov dword [esp + 0xc], esi
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0xd0]
movss xmm0, dword [esp + 0xd0]
movss dword [esp + 0x30], xmm0
mov ecx, dword [esi + 4]
mov esi, dword [esp + 0xc]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0xcc]
movss xmm0, dword [esp + 0x30]
subss xmm0, dword [esp + 0xcc]
movss dword [esi + edi], xmm0
mov dword [esi + edi + 4], 1
add edi, 8
dec ebx
jne 0x10239ac1
xorps xmm0, xmm0
mov edi, dword [esp + 0x10]
movss dword [esp + 0x10], xmm0
mov ecx, esi
call fcn.1022b550
fstp dword [esp + 0xc8]
movss xmm0, dword [esp + 0xc8]
mulss xmm0, xmm0
movss xmm1, dword [esp + 0x10]
addss xmm1, xmm0
movss dword [esp + 0x10], xmm1
movss xmm0, dword [esp + 0x10]
add esi, 8
dec edi
jne 0x10239b21
cvtss2sd xmm0, xmm0
mov edi, dword [esp + 4]
xorps xmm1, xmm1
mov ebx, edi
ucomisd xmm0, xmm1
jb 0x1023ace2
sqrtsd xmm0, xmm0
jmp 0x1023ad02
mov esi, edx
call fcn.1025c190
mov ecx, eax
push 8
call fcn.1021aad0
mov dword [esp + 4], eax
mov ecx, eax
call fcn.1022b530
test esi, esi
je 0x1023ad1d
mov ecx, esi
mov esi, dword [edi]
mov eax, edi
mov edi, ecx
mov ebx, eax
mov ebx, dword [eax + 4]
xorps xmm0, xmm0
movss dword [esp + 0x10], xmm0
mov ecx, esi
call fcn.1022b550
fstp dword [esp + 0xd8]
movss xmm0, dword [esp + 0xd8]
movss dword [esp + 0x30], xmm0
mov ecx, ebx
call fcn.1022b550
movss xmm0, dword [esp + 0x10]
fstp dword [esp + 0xd4]
movss xmm1, dword [esp + 0x30]
mulss xmm1, dword [esp + 0xd4]
addss xmm0, xmm1
add ebx, 8
add esi, 8
dec edi
jne 0x10239bb1
jmp 0x1023ad20
lea edi, [edx*8]
xor esi, esi
dec esi
cmp edx, 0x20000000
cmovb esi, edi
mov ebx, edx
call fcn.1025c190
mov ecx, eax
push esi
call fcn.1021aad0
mov dword [esp + 4], eax
test ebx, ebx
je 0x10239c46
mov esi, dword [esp + 4]
mov ecx, esi
call fcn.1022b530
add esi, 8
add edi, 0xfffffff8
jne 0x10239c37
mov edi, dword [esp]
mov ecx, dword [edi]
call fcn.1022b550
fstp dword [esp + 0xf0]
movss xmm0, dword [esp + 0xf0]
movss dword [esp + 0x10], xmm0
mov ecx, dword [edi]
add ecx, 8
call fcn.1022b550
fstp dword [esp + 0xec]
movss xmm0, dword [esp + 0xec]
movss dword [esp + 0x30], xmm0
mov ecx, dword [edi]
add ecx, 0x10
call fcn.1022b550
fstp dword [esp + 0xe8]
movss xmm0, dword [esp + 0xe8]
movss dword [esp + 0xc], xmm0
mov ecx, dword [edi + 4]
call fcn.1022b550
fstp dword [esp + 0xe4]
movss xmm0, dword [esp + 0xe4]
movss dword [esp + 0x2c], xmm0
mov ecx, dword [edi + 4]
add ecx, 8
call fcn.1022b550
fstp dword [esp + 0xe0]
movss xmm0, dword [esp + 0xe0]
movss dword [esp + 0x44], xmm0
mov ecx, dword [edi + 4]
add ecx, 0x10
call fcn.1022b550
fstp dword [esp + 0xdc]
movss xmm0, dword [esp + 0xdc]
movss xmm3, dword [esp + 0x30]
movaps xmm1, xmm3
mulss xmm1, xmm0
movss xmm4, dword [esp + 0xc]
movaps xmm2, xmm4
movss xmm5, dword [esp + 0x44]
mulss xmm2, xmm5
subss xmm1, xmm2
mov ebx, dword [esp + 4]
movss dword [ebx], xmm1
xor eax, eax
inc eax
mov dword [ebx + 4], eax
movss xmm2, dword [esp + 0x2c]
mulss xmm4, xmm2
movss xmm1, dword [esp + 0x10]
mulss xmm0, xmm1
subss xmm4, xmm0
movss dword [ebx + 8], xmm4
mov dword [ebx + 0xc], eax
mulss xmm1, xmm5
movaps xmm0, xmm3
mulss xmm0, xmm2
subss xmm1, xmm0
movss dword [ebx + 0x10], xmm1
mov dword [ebx + 0x14], eax
jmp 0x1023ad32
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x10239da1
mov dword [esp + 4], ebx
mov ebx, dword [esp]
mov esi, dword [ebx + 4]
mov ebx, dword [ebx + 8]
xorps xmm0, xmm0
movaps xmmword [esp + 0x30], xmm0
mov edi, dword [esp + 0x10]
mov ecx, ebx
call fcn.1022b550
fstp dword [esp + 0x148]
movss xmm0, dword [esp + 0x148]
movss dword [esp + 0xc], xmm0
mov ecx, esi
call fcn.1022b550
fstp dword [esp + 0x144]
movss xmm1, dword [esp + 0xc]
mulss xmm1, dword [esp + 0x144]
movaps xmm0, xmmword [esp + 0x30]
addss xmm0, xmm1
movaps xmmword [esp + 0x30], xmm0
add esi, 8
add ebx, 8
dec edi
jne 0x10239dc9
xor esi, esi
xorps xmm0, xmm0
movaps xmm1, xmmword [esp + 0x30]
cmpltss xmm1, xmm0
movaps xmmword [esp + 0x30], xmm1
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x10]
mov eax, dword [esp]
mov ecx, dword [eax]
add ecx, esi
call fcn.1022b550
fstp dword [esp + 0x140]
movss xmm0, dword [esp + 0x140]
movaps xmm2, xmmword [esp + 0x30]
movaps xmm1, xmm2
andps xmm1, xmm0
xorps xmm0, xmmword [0x102c3390]
andnps xmm2, xmm0
orps xmm2, xmm1
movss dword [ebx + esi], xmm2
mov dword [ebx + esi + 4], 1
add esi, 8
dec edi
jne 0x10239e36
jmp 0x10238e85
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x10239eb5
mov dword [esp + 4], ebx
mov ebx, dword [esp]
mov esi, dword [ebx]
mov ebx, dword [ebx + 4]
xorps xmm0, xmm0
movss dword [esp + 0x30], xmm0
mov edi, dword [esp + 0x10]
mov ecx, ebx
call fcn.1022b550
fstp dword [esp + 0x100]
movss xmm0, dword [esp + 0x100]
movss dword [esp + 0xc], xmm0
mov ecx, esi
call fcn.1022b550
fstp dword [esp + 0xfc]
movss xmm1, dword [esp + 0xc]
mulss xmm1, dword [esp + 0xfc]
movss xmm0, dword [esp + 0x30]
addss xmm0, xmm1
movss dword [esp + 0x30], xmm0
add esi, 8
add ebx, 8
dec edi
jne 0x10239edd
movss xmm0, dword [esp + 0x30]
addss xmm0, xmm0
movss dword [esp + 0x30], xmm0
xor esi, esi
mov ebx, dword [esp]
mov edi, dword [esp + 0x10]
mov ecx, dword [ebx]
add ecx, esi
call fcn.1022b550
fstp dword [esp + 0xf8]
movss xmm0, dword [esp + 0xf8]
movss dword [esp + 0x10], xmm0
mov ecx, dword [ebx + 4]
add ecx, esi
call fcn.1022b550
fstp dword [esp + 0xf4]
movss xmm0, dword [esp + 0xf4]
mulss xmm0, dword [esp + 0x30]
movss xmm1, dword [esp + 0x10]
subss xmm1, xmm0
mov eax, dword [esp + 4]
movss dword [eax + esi], xmm1
mov dword [eax + esi + 4], 1
add esi, 8
dec edi
jne 0x10239f49
mov ecx, dword [esp + 8]
mov edi, ebx
jmp 0x1023abdd
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x10239fe7
mov dword [esp + 4], ebx
mov ebx, dword [esp]
mov esi, dword [ebx]
mov ebx, dword [ebx + 4]
xorps xmm0, xmm0
mov edi, dword [esp + 0x10]
movss dword [esp + 0x30], xmm0
mov ecx, ebx
call fcn.1022b550
fstp dword [esp + 0x15c]
movss xmm0, dword [esp + 0x15c]
movss dword [esp + 0xc], xmm0
mov ecx, esi
call fcn.1022b550
movss xmm0, dword [esp + 0x30]
fstp dword [esp + 0x158]
movss xmm1, dword [esp + 0xc]
mulss xmm1, dword [esp + 0x158]
addss xmm0, xmm1
add esi, 8
add ebx, 8
dec edi
jne 0x1023a009
movss dword [esp + 0x30], xmm0
mulss xmm0, xmm0
movss xmm1, dword [0x102c3370]
subss xmm1, xmm0
movss dword [esp + 0xc], xmm1
xor esi, esi
mov edi, dword [esp]
mov ebx, dword [esp + 0x10]
mov ecx, dword [edi + 8]
add ecx, esi
call fcn.1022b550
fstp dword [esp + 0x154]
movss xmm2, dword [esp + 0x154]
movaps xmm0, xmm2
mulss xmm0, xmm2
mulss xmm0, dword [esp + 0xc]
movss xmm1, dword [0x102c3370]
subss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x1023a177
mov ecx, dword [edi]
add ecx, esi
movss dword [esp + 0x10], xmm2
movss dword [esp + 0x44], xmm1
call fcn.1022b550
movss xmm2, dword [esp + 0x10]
fstp dword [esp + 0x150]
movss xmm0, dword [esp + 0x150]
mulss xmm0, xmm2
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esp + 0x44]
cvtss2sd xmm0, xmm0
ucomisd xmm0, qword [0x103079a8]
jb 0x1023a10f
sqrtsd xmm0, xmm0
jmp 0x1023a135
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movss xmm2, dword [esp + 0x18]
add esp, 8
fstp qword [esp + 0x170]
movsd xmm0, qword [esp + 0x170]
movss xmm1, dword [esp + 0x30]
cvtsd2ss xmm0, xmm0
mulss xmm2, xmm1
addss xmm0, xmm2
movss dword [esp + 0x10], xmm0
mov ecx, dword [edi + 4]
add ecx, esi
call fcn.1022b550
fstp dword [esp + 0x14c]
movss xmm1, dword [esp + 0x10]
mulss xmm1, dword [esp + 0x14c]
movss xmm0, dword [esp + 0x2c]
subss xmm0, xmm1
mov eax, dword [esp + 4]
movss dword [eax + esi], xmm0
mov dword [eax + esi + 4], 1
add esi, 8
dec ebx
jne 0x1023a081
jmp 0x1023abd9
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x1023a1ca
mov dword [esp + 4], ebx
xor edi, edi
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
cmp eax, 4
je 0x1023a238
cmp eax, 3
je 0x1023a25b
cmp eax, 1
jne 0x1023a293
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x9c]
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x98]
movss xmm0, dword [esp + 0x98]
ucomiss xmm0, dword [esp + 0x9c]
seta al
jmp 0x1023a27c
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
cmp dword [esp + 0x10], eax
setb al
jmp 0x1023a27c
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
cmp dword [esp + 0x10], eax
setl al
mov ecx, dword [esp + 4]
mov byte [ecx + edi], al
mov dword [ecx + edi + 4], 5
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
add edi, 8
dec ebx
jne 0x1023a1eb
jmp 0x1023acd9
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x1023a2d5
mov dword [esp + 4], ebx
xor edi, edi
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
cmp eax, 4
je 0x1023a343
cmp eax, 3
je 0x1023a366
cmp eax, 1
jne 0x1023a39e
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0xa4]
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0xa0]
movss xmm0, dword [esp + 0xa0]
ucomiss xmm0, dword [esp + 0xa4]
setae al
jmp 0x1023a387
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
cmp dword [esp + 0x10], eax
setbe al
jmp 0x1023a387
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
cmp dword [esp + 0x10], eax
setle al
mov ecx, dword [esp + 4]
mov byte [ecx + edi], al
mov dword [ecx + edi + 4], 5
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
add edi, 8
dec ebx
jne 0x1023a2f6
jmp 0x1023acd9
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x1023a3e0
mov dword [esp + 4], ebx
xor edi, edi
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
cmp eax, 4
je 0x1023a457
cmp eax, 3
je 0x1023a49e
cmp eax, 1
jne 0x1023a48f
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0xac]
movss xmm0, dword [esp + 0xac]
movss dword [esp + 0x10], xmm0
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0xa8]
movss xmm0, dword [esp + 0x10]
ucomiss xmm0, dword [esp + 0xa8]
jmp 0x1023a475
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
cmp dword [esp + 0x10], eax
seta al
mov ecx, dword [esp + 4]
mov byte [ecx + edi], al
mov dword [ecx + edi + 4], 5
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
add edi, 8
dec ebx
jne 0x1023a401
jmp 0x1023acd9
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
cmp dword [esp + 0x10], eax
setg al
jmp 0x1023a478
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x1023a4f4
mov dword [esp + 4], ebx
xor edi, edi
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
cmp eax, 4
je 0x1023a56b
cmp eax, 3
je 0x1023a5b2
cmp eax, 1
jne 0x1023a5a3
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0xb4]
movss xmm0, dword [esp + 0xb4]
movss dword [esp + 0x10], xmm0
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0xb0]
movss xmm0, dword [esp + 0x10]
ucomiss xmm0, dword [esp + 0xb0]
jmp 0x1023a589
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
cmp dword [esp + 0x10], eax
setae al
mov ecx, dword [esp + 4]
mov byte [ecx + edi], al
mov dword [ecx + edi + 4], 5
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
add edi, 8
dec ebx
jne 0x1023a515
jmp 0x1023acd9
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
cmp dword [esp + 0x10], eax
setge al
jmp 0x1023a58c
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x1023a608
mov dword [esp + 4], ebx
xor edi, edi
mov eax, dword [esp + 0xc]
dec eax
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xc], eax
cmp eax, 4
ja case.0x1023a637.1
jmp dword [eax*4 + 0x103105c4]
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0xbc]
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0xb8]
movss xmm0, dword [esp + 0xb8]
cmpeqss xmm0, dword [esp + 0xbc]
movd eax, xmm0
and eax, 1
jmp 0x1023a6bb
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
jmp 0x1023a6b4
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
cmp dword [esp + 0x10], eax
sete al
mov ecx, dword [esp + 4]
mov byte [ecx + edi], al
mov dword [ecx + edi + 4], 5
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
add edi, 8
dec ebx
jne 0x1023a62e
jmp 0x1023acd9
mov eax, dword [esp]
mov ecx, dword [eax]
add ecx, edi
call fcn.1022b5a0
mov esi, ebx
mov ebx, eax
mov eax, dword [esp]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.1022b5a0
xor al, bl
mov ebx, esi
xor al, 1
jmp 0x1023a6bb
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x1023a739
mov dword [esp + 4], ebx
xor edi, edi
mov eax, dword [esp + 0xc]
dec eax
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xc], eax
cmp eax, 4
ja case.0x1023a768.1
jmp dword [eax*4 + 0x103105b0]
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0xc4]
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0xc0]
movss xmm0, dword [esp + 0xc0]
cmpneqss xmm0, dword [esp + 0xc4]
movd eax, xmm0
and eax, 1
jmp 0x1023a7ec
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
jmp 0x1023a7e5
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b540
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b540
cmp dword [esp + 0x10], eax
setne al
mov ecx, dword [esp + 4]
mov byte [ecx + edi], al
mov dword [ecx + edi + 4], 5
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
add edi, 8
dec ebx
jne 0x1023a75f
jmp 0x1023acd9
mov eax, dword [esp]
mov ecx, dword [eax]
add ecx, edi
call fcn.1022b5a0
mov esi, ebx
mov ebx, eax
mov eax, dword [esp]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.1022b5a0
xor al, bl
mov ebx, esi
jmp 0x1023a7ec
lea esi, [edx*8]
xor eax, eax
dec eax
cmp edx, 0x20000000
mov edi, esi
cmovae edi, eax
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x1023a86a
xor ecx, ecx
mov edi, dword [esp]
mov dword [esp + 4], ebx
mov dword [esp + 0x30], ecx
mov ecx, dword [edi + 4]
call fcn.1022b540
mov esi, eax
mov ecx, dword [edi + 8]
call fcn.1022b540
test eax, eax
je 0x1023a95e
mov ebx, eax
cmp eax, 0x20
jg 0x1023a9e2
mov edx, esi
cmp esi, 0x1f
jg 0x1023a9e2
mov eax, ebx
or eax, edx
js 0x1023a9e2
lea eax, [ebx + edx]
cmp eax, 0x21
jge 0x1023a9e2
mov ecx, ebx
neg ecx
xor eax, eax
dec eax
shr eax, cl
mov ecx, edx
shl eax, cl
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0x2c]
mov eax, dword [edi]
mov esi, dword [eax + 0x7c]
mov ecx, esi
mov dword [esp + 0x44], edx
call dword [section..00cfg]
mov ecx, edi
call esi
cmp dword [eax], 3
jne 0x1023a991
mov eax, 0x20
sub eax, ebx
mov edi, eax
mov eax, ebx
dec al
mov byte [esp + 0x50], al
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, dword [esp + 0x30]
call fcn.1022b540
and eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x44]
shr eax, cl
xor edx, edx
dec edx
mov ecx, edi
shl edx, cl
not edx
mov ecx, ebx
mov edi, esi
shl edx, cl
movzx ecx, byte [esp + 0x50]
bt eax, ecx
mov ecx, 0
cmovae edx, ecx
mov ecx, dword [esp + 0x30]
or edx, eax
mov ebx, dword [esp + 4]
mov dword [ebx + ecx], edx
mov dword [ebx + ecx + 4], 3
jmp 0x1023a9cb
mov edi, dword [esp + 0x2c]
mov eax, dword [edi]
mov ebx, dword [eax + 0x7c]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
call ebx
cmp dword [eax], 3
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x30]
mov dword [ebx + ecx], 0
jne 0x1023a9c0
mov dword [ebx + ecx + 4], 3
jmp 0x1023a9c8
mov esi, dword [esp]
mov ecx, dword [esi]
mov ebx, dword [esp + 0x30]
add ecx, ebx
call fcn.1022b540
and eax, dword [esp + 0xc]
mov edi, esi
mov ecx, dword [esp + 0x44]
shr eax, cl
mov ecx, ebx
mov ebx, dword [esp + 4]
mov dword [ebx + ecx], eax
mov dword [ebx + ecx + 4], 4
jmp 0x1023a9cb
mov dword [ebx + ecx + 4], 4
mov edi, dword [esp]
mov eax, dword [esp + 0x10]
add ecx, 8
dec eax
mov dword [esp + 0x10], eax
jne 0x1023a882
jmp 0x1023ad32
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x30]
add eax, edi
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x2c]
mov eax, dword [esi]
mov ebx, dword [eax + 0x7c]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov ebx, edi
lea ecx, [esp + 0x1b8]
mov edx, dword [esp + 0x48]
push dword [esp + 0xc]
push dword [esp + 0x50]
push dword [eax]
call fcn.1023b3d0
mov ecx, dword [esp + 0x3c]
add esp, 0xc
jmp 0x1023a9c8
lea esi, [edx*8]
xor eax, eax
dec eax
cmp edx, 0x20000000
mov edi, esi
cmovae edi, eax
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x1023aa5f
mov dword [esp + 4], ebx
xor ebx, ebx
mov edi, dword [esp]
mov ecx, dword [edi + 8]
call fcn.1022b540
mov esi, eax
mov ecx, dword [edi + 0xc]
call fcn.1022b540
test eax, eax
je 0x1023ab2b
cmp eax, 0x20
jg 0x1023ab98
mov edx, esi
cmp esi, 0x1f
jg 0x1023ab98
mov ecx, eax
or ecx, edx
js 0x1023ab98
lea ecx, [eax + edx]
cmp ecx, 0x21
jge 0x1023ab98
neg al
xor esi, esi
dec esi
mov ecx, eax
shr esi, cl
mov dword [esp + 0xc], esi
mov eax, esi
mov ecx, edx
shl eax, cl
not eax
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x2c]
mov eax, dword [edi]
mov esi, dword [eax + 0x7c]
mov ecx, esi
mov dword [esp + 0x44], edx
call dword [section..00cfg]
mov ecx, edi
call esi
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, ebx
cmp dword [eax], 3
jne 0x1023ab52
call fcn.1022b540
mov edi, eax
mov ecx, dword [esi + 4]
add ecx, ebx
call fcn.1022b540
and eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x44]
shl eax, cl
and edi, dword [esp + 0x30]
or eax, edi
mov ecx, dword [esp + 4]
mov dword [ecx + ebx], eax
mov dword [ecx + ebx + 4], 3
jmp 0x1023ab82
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov esi, dword [eax + 0x7c]
mov ecx, esi
call dword [section..00cfg]
mov ecx, dword [esp + 0x2c]
call esi
mov ecx, dword [edi]
add ecx, ebx
cmp dword [eax], 3
jne 0x1023ab91
call fcn.1022b540
jmp 0x1023ab1a
call fcn.1022b540
mov edi, eax
mov ecx, dword [esi + 4]
add ecx, ebx
call fcn.1022b540
and eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x44]
shl eax, cl
and edi, dword [esp + 0x30]
or eax, edi
mov ecx, dword [esp + 4]
mov dword [ecx + ebx], eax
mov dword [ecx + ebx + 4], 4
add ebx, 8
dec dword [esp + 0x10]
jne 0x1023aa74
jmp 0x1023abd6
call fcn.1022b540
jmp 0x1023ab73
mov eax, dword [esp + 4]
add eax, ebx
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x2c]
mov eax, dword [edi]
mov esi, dword [eax + 0x7c]
mov ecx, esi
call dword [section..00cfg]
mov ecx, edi
call esi
lea ecx, [esp + 0x1b8]
mov edx, dword [esp + 0x48]
push dword [esp + 0x30]
push dword [esp + 0x50]
push dword [eax]
call fcn.1023b3d0
add esp, 0xc
jmp 0x1023ab82
mov edi, dword [esp]
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 4]
jmp case.0x10238ce5.98
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov dword [esp + 0x10], edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov ebx, eax
cmp dword [esp + 0x10], 0
je 0x10238e85
xor edi, edi
lea ecx, [ebx + edi]
call fcn.1022b530
add edi, 8
cmp esi, edi
jne 0x1023ac19
mov dword [esp + 4], ebx
xor edi, edi
mov ebx, dword [esp + 0x10]
mov esi, dword [esp]
mov ecx, dword [esi]
add ecx, edi
call fcn.1022b550
fstp dword [esp + 0x68]
movss xmm0, dword [esp + 0x68]
movss dword [esp + 0x10], xmm0
mov ecx, dword [esi + 4]
add ecx, edi
call fcn.1022b550
movss xmm2, dword [esp + 0x10]
fstp dword [esp + 0x64]
movss xmm0, dword [esp + 0x64]
xorps xmm1, xmm1
ucomiss xmm2, xmm1
jne 0x1023ac79
jp 0x1023ac79
ucomiss xmm0, xmm1
jne 0x1023ac79
jnp 0x1023acb1
cvtss2sd xmm0, xmm0
xorps xmm1, xmm1
cvtss2sd xmm1, xmm2
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
add esp, 0x10
mov eax, dword [esp + 4]
fstp dword [eax + edi]
mov dword [eax + edi + 4], 1
add edi, 8
dec ebx
jne 0x1023ac35
jmp 0x1023acd5
mov eax, dword [esp + 4]
add eax, edi
lea ecx, [esp + 0x1b8]
mov edx, dword [esp + 0x48]
push eax
push dword [esp + 0x50]
push dword [esp + 0x14]
call fcn.1023b3d0
add esp, 0xc
jmp 0x1023aca9
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 4]
jmp 0x10238e89
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
add esp, 8
fstp qword [esp + 0x160]
movsd xmm0, qword [esp + 0x160]
mov edi, dword [esp]
mov ecx, dword [esp + 8]
cvtsd2ss xmm0, xmm0
movss dword [ebx], xmm0
mov dword [ebx + 4], 1
jmp case.0x10238ce5.98
xorps xmm0, xmm0
mov ebx, dword [esp + 4]
movss dword [ebx], xmm0
mov dword [ebx + 4], 1
mov edi, dword [esp]
mov ecx, dword [esp + 8]
jmp case.0x10238ce5.98
lea esi, [edx*8]
xor edi, edi
dec edi
cmp edx, 0x20000000
cmovb edi, esi
mov ebx, edx
call fcn.1025c190
mov ecx, eax
push edi
call fcn.1021aad0
mov dword [esp + 4], eax
test ebx, ebx
je 0x1023ad78
mov edi, dword [esp + 4]
mov ecx, edi
call fcn.1022b530
add edi, 8
add esi, 0xfffffff8
jne 0x1023ad69
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx]
mov esi, dword [eax]
mov eax, dword [esi]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
mov esi, eax
mov eax, dword [eax]
mov edi, dword [eax + 0x7c]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
movzx eax, byte [eax + 0x7d]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov esi, dword [eax]
mov eax, dword [esi]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
mov esi, eax
mov eax, dword [eax]
mov edi, dword [eax + 0x7c]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
movzx esi, byte [eax + 0x7c]
mov edi, dword [esp]
mov edx, dword [edi]
lea ecx, [esp + 0x1a4]
push esi
mov ebx, dword [esp + 0x14]
push ebx
call fcn.1023b0e0
add esp, 8
mov edx, dword [edi + 4]
lea edi, [esp + 0x190]
mov ecx, edi
push esi
push ebx
call fcn.1023b0e0
add esp, 8
lea ebx, [esp + 0x17c]
lea ecx, [esp + 0x1a4]
mov edx, ebx
push edi
call fcn.1023b460
add esp, 4
mov ecx, ebx
mov edx, dword [esp + 4]
mov esi, edx
call fcn.1023b1f0
mov eax, dword [ebx]
test eax, eax
je 0x1023ae62
mov ecx, dword [esp + 0x184]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1023ae58
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1023b063
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov eax, dword [esp + 0x190]
test eax, eax
mov edi, dword [esp]
mov ebx, esi
je 0x1023aea0
mov ecx, dword [esp + 0x198]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1023ae96
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1023b063
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov eax, dword [esp + 0x1a4]
jmp 0x1023b027
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx]
mov esi, dword [eax]
mov eax, dword [esi]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
mov esi, eax
mov eax, dword [eax]
mov edi, dword [eax + 0x7c]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
mov ecx, eax
call fcn.102807f0
mov edi, eax
mov eax, dword [ebx]
mov esi, dword [eax + 4]
mov eax, dword [esi]
mov ebx, dword [eax + 0xc]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov esi, eax
mov eax, dword [eax]
mov ebx, dword [eax + 0x7c]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov ecx, eax
call fcn.102807f0
mov dword [esp + 0x30], eax
mov ebx, eax
mov dword [esp + 0x10], edi
imul ebx, edi
lea edi, [ebx*8]
xor esi, esi
dec esi
cmp ebx, 0x20000000
cmovb esi, edi
call fcn.1025c190
mov ecx, eax
push esi
call fcn.1021aad0
mov dword [esp + 4], eax
test ebx, ebx
je 0x1023af59
mov ebx, dword [esp + 4]
mov ecx, ebx
call fcn.1022b530
add ebx, 8
add edi, 0xfffffff8
jne 0x1023af4a
mov esi, dword [esp]
mov edx, dword [esi]
xor ebx, ebx
inc ebx
lea ecx, [esp + 0x190]
push ebx
push dword [esp + 0x14]
call fcn.1023b0e0
add esp, 8
mov edx, dword [esi + 4]
lea edi, [esp + 0x17c]
mov ecx, edi
push dword [esp + 0x30]
push ebx
call fcn.1023b0e0
add esp, 8
lea edx, [esp + 0x1a4]
lea ecx, [esp + 0x190]
push edi
call fcn.1023b5c0
add esp, 4
mov eax, dword [edi]
test eax, eax
mov ebx, dword [esp + 4]
je 0x1023afdd
mov ecx, dword [esp + 0x184]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1023afd3
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1023b063
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov eax, dword [esp + 0x190]
test eax, eax
mov edi, dword [esp]
je 0x1023b015
mov ecx, dword [esp + 0x198]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1023b00b
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1023b063
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
lea esi, [esp + 0x1a4]
mov ecx, esi
mov edx, ebx
call fcn.1023b1f0
mov eax, dword [esi]
test eax, eax
je 0x1023ad32
mov ecx, dword [esp + 0x1ac]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1023b04f
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x1023b063
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
jmp 0x1023ad32
call fcn.10213e90
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3