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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xcc
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x1c], edx
cmp edx, dword [ebp + 8]
jge 0x42b115
xorps xmm0, xmm0
mov esi, dword [edi + 8]
lea eax, [edx - 1]
cmp dword [edi + 0xc], esi
mov ecx, 0x474770
mov dword [esp + 0x10], esi
cmovb ecx, dword [edi + 0xc]
mov ebx, dword [ecx]
cmp eax, dword [ebx + 0x1c]
jae 0x42a4ab
mov eax, dword [ebx + 0xc]
shl edx, 4
add eax, 0xfffffff0
add edx, eax
jmp 0x42a514
movd xmm1, edx
cvtdq2pd xmm1, xmm1
ucomisd xmm1, xmm0
movsd qword [esp + 0x20], xmm1
lahf
test ah, 0x44
jp 0x42a4c8
mov edx, dword [ebx + 0x10]
jmp 0x42a4f0
mov cl, byte [ebx + 7]
mov esi, 1
mov eax, dword [esp + 0x20]
xor edx, edx
add eax, dword [esp + 0x24]
shl esi, cl
dec esi
or esi, 1
div esi
mov esi, dword [esp + 0x10]
shl edx, 5
add edx, dword [ebx + 0x10]
lea esp, [esp]
cmp dword [edx + 0x18], 3
jne 0x42a505
movsd xmm0, qword [edx + 0x10]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x42a511
mov edx, dword [edx + 0x1c]
test edx, edx
jne 0x42a4f0
mov edx, 0x474770
xorps xmm0, xmm0
mov eax, dword [edx]
mov ecx, 0x474770
mov dword [esi], eax
mov eax, dword [edx + 4]
mov dword [esi + 4], eax
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
add dword [edi + 8], 0x10
mov esi, dword [edi + 8]
cmp dword [edi + 0xc], esi
mov dword [esp + 0x10], esi
cmovb ecx, dword [edi + 0xc]
mov ebx, dword [ecx]
mov ecx, dword [ebp + 8]
lea eax, [ecx - 1]
cmp eax, dword [ebx + 0x1c]
jae 0x42a553
shl ecx, 4
lea edx, [ecx - 0x10]
add edx, dword [ebx + 0xc]
jmp 0x42a5b5
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
ucomisd xmm1, xmm0
movsd qword [esp + 0x20], xmm1
lahf
test ah, 0x44
jp 0x42a570
mov edx, dword [ebx + 0x10]
jmp 0x42a594
mov cl, byte [ebx + 7]
mov esi, 1
mov eax, dword [esp + 0x20]
xor edx, edx
add eax, dword [esp + 0x24]
shl esi, cl
dec esi
or esi, 1
div esi
mov esi, dword [esp + 0x10]
shl edx, 5
add edx, dword [ebx + 0x10]
cmp dword [edx + 0x18], 3
jne 0x42a5a9
movsd xmm0, qword [edx + 0x10]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x42a5b5
mov edx, dword [edx + 0x1c]
test edx, edx
jne 0x42a594
mov edx, 0x474770
mov eax, dword [edx]
mov ecx, edi
mov dword [esi], eax
mov eax, dword [edx + 4]
mov dword [esi + 4], eax
mov eax, dword [edx + 8]
or edx, 0xffffffff
mov dword [esi + 8], eax
add dword [edi + 8], 0x10
push 0xfffffffffffffffe
call fcn.0042a360
add esp, 4
test eax, eax
je 0x42a6f2
mov esi, dword [edi + 8]
mov ebx, 0x474770
cmp dword [edi + 0xc], esi
mov edx, dword [esp + 0x1c]
cmovb ebx, dword [edi + 0xc]
mov ecx, dword [ebx]
call fcn.00417330
cmp eax, 0x474770
jne 0x42a62a
movd xmm0, dword [esp + 0x1c]
lea eax, [esp + 0x38]
mov edx, dword [ebx]
mov ecx, edi
cvtdq2pd xmm0, xmm0
push eax
mov dword [esp + 0x44], 3
movsd qword [esp + 0x3c], xmm0
call fcn.004171c0
add esp, 4
mov ecx, dword [esi - 0x10]
mov dword [eax], ecx
mov ecx, dword [esi - 0xc]
mov dword [eax + 4], ecx
mov ecx, dword [esi - 8]
mov dword [eax + 8], ecx
mov eax, dword [edi + 8]
cmp dword [eax - 8], 4
jl 0x42a665
mov eax, dword [eax - 0x10]
test byte [eax + 5], 3
je 0x42a665
mov edx, dword [ebx]
test byte [edx + 5], 4
je 0x42a665
mov ecx, dword [edi + 0x10]
and byte [edx + 5], 0xfb
mov eax, dword [ecx + 0x28]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x28], edx
add dword [edi + 8], 0xfffffff0
mov ebx, 0x474770
mov esi, dword [edi + 8]
cmp dword [edi + 0xc], esi
mov edx, dword [ebp + 8]
cmovb ebx, dword [edi + 0xc]
mov ecx, dword [ebx]
call fcn.00417330
cmp eax, 0x474770
jne 0x42a6b1
movd xmm0, dword [ebp + 8]
lea eax, [esp + 0x58]
mov edx, dword [ebx]
mov ecx, edi
cvtdq2pd xmm0, xmm0
push eax
mov dword [esp + 0x64], 3
movsd qword [esp + 0x5c], xmm0
call fcn.004171c0
add esp, 4
mov ecx, dword [esi - 0x10]
mov dword [eax], ecx
mov ecx, dword [esi - 0xc]
mov dword [eax + 4], ecx
mov ecx, dword [esi - 8]
mov dword [eax + 8], ecx
mov eax, dword [edi + 8]
cmp dword [eax - 8], 4
jl 0x42a6ec
mov eax, dword [eax - 0x10]
test byte [eax + 5], 3
je 0x42a6ec
mov edx, dword [ebx]
test byte [edx + 5], 4
je 0x42a6ec
mov ecx, dword [edi + 0x10]
and byte [edx + 5], 0xfb
mov eax, dword [ecx + 0x28]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x28], edx
add dword [edi + 8], 0xfffffff0
jmp 0x42a6f6
add dword [edi + 8], 0xffffffe0
mov ecx, dword [ebp + 8]
mov ebx, ecx
mov eax, dword [esp + 0x1c]
sub ebx, eax
cmp ebx, 1
je 0x42b115
mov esi, dword [edi + 8]
add eax, ecx
cdq
mov ecx, 0x474770
sub eax, edx
sar eax, 1
cmp dword [edi + 0xc], esi
mov edx, eax
mov dword [esp + 0x18], eax
cmovb ecx, dword [edi + 0xc]
mov ecx, dword [ecx]
call fcn.00417330
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax]
mov dword [esi], ecx
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov ecx, 0x474770
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
add dword [edi + 8], 0x10
mov esi, dword [edi + 8]
cmp dword [edi + 0xc], esi
cmovb ecx, dword [edi + 0xc]
mov ecx, dword [ecx]
call fcn.00417330
push 0xffffffffffffffff
mov edx, 0xfffffffe
mov ecx, dword [eax]
mov dword [esi], ecx
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov ecx, edi
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
add dword [edi + 8], 0x10
call fcn.0042a360
add esp, 4
mov ecx, 0x474770
test eax, eax
je 0x42a8c8
mov esi, dword [edi + 8]
cmp dword [edi + 0xc], esi
mov edx, dword [esp + 0x18]
cmovb ecx, dword [edi + 0xc]
mov dword [esp + 0x14], ecx
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x10], eax
call fcn.00417330
cmp eax, 0x474770
jne 0x42a7e7
movd xmm0, dword [esp + 0x18]
lea eax, [esp + 0x98]
mov edx, dword [esp + 0x10]
mov ecx, edi
cvtdq2pd xmm0, xmm0
push eax
mov dword [esp + 0xa4], 3
movsd qword [esp + 0x9c], xmm0
call fcn.004171c0
add esp, 4
mov ecx, dword [esi - 0x10]
mov dword [eax], ecx
mov ecx, dword [esi - 0xc]
mov dword [eax + 4], ecx
mov ecx, dword [esi - 8]
mov dword [eax + 8], ecx
mov eax, dword [edi + 8]
cmp dword [eax - 8], 4
jl 0x42a826
mov eax, dword [eax - 0x10]
test byte [eax + 5], 3
je 0x42a826
mov edx, dword [esp + 0x14]
mov edx, dword [edx]
test byte [edx + 5], 4
je 0x42a826
mov ecx, dword [edi + 0x10]
and byte [edx + 5], 0xfb
mov eax, dword [ecx + 0x28]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x28], edx
add dword [edi + 8], 0xfffffff0
mov ecx, 0x474770
mov esi, dword [edi + 8]
cmp dword [edi + 0xc], esi
mov edx, dword [esp + 0x1c]
cmovb ecx, dword [edi + 0xc]
mov dword [esp + 0x14], ecx
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x10], eax
call fcn.00417330
cmp eax, 0x474770
jne 0x42a883
movd xmm0, dword [esp + 0x1c]
lea eax, [esp + 0x78]
mov edx, dword [esp + 0x10]
mov ecx, edi
cvtdq2pd xmm0, xmm0
push eax
mov dword [esp + 0x84], 3
movsd qword [esp + 0x7c], xmm0
call fcn.004171c0
add esp, 4
mov ecx, dword [esi - 0x10]
mov dword [eax], ecx
mov ecx, dword [esi - 0xc]
mov dword [eax + 4], ecx
mov ecx, dword [esi - 8]
mov dword [eax + 8], ecx
mov eax, dword [edi + 8]
cmp dword [eax - 8], 4
jl 0x42a8c2
mov eax, dword [eax - 0x10]
test byte [eax + 5], 3
je 0x42a8c2
mov edx, dword [esp + 0x14]
mov edx, dword [edx]
test byte [edx + 5], 4
je 0x42a8c2
mov ecx, dword [edi + 0x10]
and byte [edx + 5], 0xfb
mov eax, dword [ecx + 0x28]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x28], edx
add dword [edi + 8], 0xfffffff0
jmp 0x42a932
add dword [edi + 8], 0xfffffff0
mov esi, dword [edi + 8]
cmp dword [edi + 0xc], esi
mov edx, dword [ebp + 8]
cmovb ecx, dword [edi + 0xc]
mov ecx, dword [ecx]
call fcn.00417330
push 0xfffffffffffffffe
or edx, 0xffffffff
mov ecx, dword [eax]
mov dword [esi], ecx
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov ecx, edi
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
add dword [edi + 8], 0x10
call fcn.0042a360
add esp, 4
test eax, eax
je 0x42a92e
push dword [esp + 0x18]
mov edx, 1
mov ecx, edi
call fcn.00412910
add esp, 4
mov edx, 1
mov ecx, edi
push dword [ebp + 8]
call fcn.00412910
add esp, 4
jmp 0x42a932
add dword [edi + 8], 0xffffffe0
cmp ebx, 2
je 0x42b115
mov esi, dword [edi + 8]
mov ecx, 0x474770
cmp dword [edi + 0xc], esi
mov ebx, dword [esp + 0x18]
mov edx, ebx
cmovb ecx, dword [edi + 0xc]
mov ecx, dword [ecx]
call fcn.00417330
mov ecx, dword [eax]
mov dword [esi], ecx
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
add dword [edi + 8], 0x10
mov ecx, dword [edi + 8]
mov eax, dword [ecx - 0x10]
mov dword [ecx], eax
mov eax, dword [ecx - 0xc]
mov dword [ecx + 4], eax
mov eax, dword [ecx - 8]
mov dword [ecx + 8], eax
mov ecx, 0x474770
add dword [edi + 8], 0x10
mov esi, dword [edi + 8]
cmp dword [edi + 0xc], esi
mov eax, dword [ebp + 8]
cmovb ecx, dword [edi + 0xc]
dec eax
mov edx, eax
mov dword [esp + 0x18], eax
mov ecx, dword [ecx]
call fcn.00417330
mov edx, ebx
mov ecx, dword [eax]
mov dword [esi], ecx
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov ecx, 0x474770
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
add dword [edi + 8], 0x10
mov esi, dword [edi + 8]
cmp dword [edi + 0xc], esi
cmovb ecx, dword [edi + 0xc]
mov dword [esp + 0x14], ecx
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x10], eax
call fcn.00417330
cmp eax, 0x474770
jne 0x42aa12
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xb8]
movd xmm0, ebx
mov ecx, edi
cvtdq2pd xmm0, xmm0
push eax
mov dword [esp + 0xc4], 3
movsd qword [esp + 0xbc], xmm0
call fcn.004171c0
add esp, 4
mov ecx, dword [esi - 0x10]
mov dword [eax], ecx
mov ecx, dword [esi - 0xc]
mov dword [eax + 4], ecx
mov ecx, dword [esi - 8]
mov dword [eax + 8], ecx
mov eax, dword [edi + 8]
cmp dword [eax - 8], 4
jl 0x42aa51
mov eax, dword [eax - 0x10]
test byte [eax + 5], 3
je 0x42aa51
mov edx, dword [esp + 0x14]
mov edx, dword [edx]
test byte [edx + 5], 4
je 0x42aa51
mov ecx, dword [edi + 0x10]
and byte [edx + 5], 0xfb
mov eax, dword [ecx + 0x28]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x28], edx
add dword [edi + 8], 0xfffffff0
mov ebx, 0x474770
mov esi, dword [edi + 8]
cmp dword [edi + 0xc], esi
mov edx, dword [esp + 0x18]
cmovb ebx, dword [edi + 0xc]
mov ecx, dword [ebx]
call fcn.00417330
cmp eax, 0x474770
jne 0x42aa9f
movd xmm0, dword [esp + 0x18]
lea eax, [esp + 0x48]
mov edx, dword [ebx]
mov ecx, edi
cvtdq2pd xmm0, xmm0
push eax
mov dword [esp + 0x54], 3
movsd qword [esp + 0x4c], xmm0
call fcn.004171c0
add esp, 4
mov ecx, dword [esi - 0x10]
mov dword [eax], ecx
mov ecx, dword [esi - 0xc]
mov dword [eax + 4], ecx
mov ecx, dword [esi - 8]
mov dword [eax + 8], ecx
mov eax, dword [edi + 8]
cmp dword [eax - 8], 4
jl 0x42aada
mov eax, dword [eax - 0x10]
test byte [eax + 5], 3
je 0x42aada
mov edx, dword [ebx]
test byte [edx + 5], 4
je 0x42aada
mov ecx, dword [edi + 0x10]
and byte [edx + 5], 0xfb
mov eax, dword [ecx + 0x28]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x28], edx
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
add dword [edi + 8], 0xfffffff0
mov eax, edx
shl eax, 4
mov esi, dword [edi + 8]
inc edx
add eax, 0x10
mov dword [esp + 0x14], esi
cmp dword [edi + 0xc], esi
mov ecx, 0x474770
mov dword [esp + 0x10], eax
cmovb ecx, dword [edi + 0xc]
lea eax, [edx - 1]
mov dword [esp + 0x2c], edx
mov ebx, dword [ecx]
cmp eax, dword [ebx + 0x1c]
jae 0x42ab24
mov edx, dword [esp + 0x10]
add edx, 0xfffffff0
add edx, dword [ebx + 0xc]
jmp 0x42ab89
movd xmm1, edx
xorps xmm0, xmm0
cvtdq2pd xmm1, xmm1
ucomisd xmm1, xmm0
movsd qword [esp + 0x20], xmm1
lahf
test ah, 0x44
jp 0x42ab44
mov edx, dword [ebx + 0x10]
jmp 0x42ab68
mov cl, byte [ebx + 7]
mov esi, 1
mov eax, dword [esp + 0x20]
xor edx, edx
add eax, dword [esp + 0x24]
shl esi, cl
dec esi
or esi, 1
div esi
mov esi, dword [esp + 0x14]
shl edx, 5
add edx, dword [ebx + 0x10]
cmp dword [edx + 0x18], 3
jne 0x42ab7d
movsd xmm0, qword [edx + 0x10]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x42ab89
mov edx, dword [edx + 0x1c]
test edx, edx
jne 0x42ab68
mov edx, 0x474770
mov eax, dword [edx]
mov ecx, edi
mov dword [esi], eax
mov eax, dword [edx + 4]
mov dword [esi + 4], eax
mov eax, dword [edx + 8]
or edx, 0xffffffff
mov dword [esi + 8], eax
add dword [edi + 8], 0x10
push 0xfffffffffffffffe
call fcn.0042a360
add esp, 4
test eax, eax
je 0x42abd8
mov edx, dword [esp + 0x2c]
cmp edx, dword [ebp + 8]
jle 0x42abcb
push str.invalid_order_function_for_sorting
push edi
call fcn.004130c0
mov edx, dword [esp + 0x34]
add esp, 8
add dword [edi + 8], 0xfffffff0
mov eax, dword [esp + 0x10]
jmp 0x42aaef
mov edx, dword [esp + 0x28]
mov eax, edx
shl eax, 4
mov esi, dword [edi + 8]
dec edx
sub eax, 0x10
mov dword [esp + 0x28], edx
cmp dword [edi + 0xc], esi
mov ecx, 0x474770
mov dword [esp + 0x10], eax
cmovb ecx, dword [edi + 0xc]
lea eax, [edx - 1]
mov dword [esp + 0x14], esi
mov ebx, dword [ecx]
cmp eax, dword [ebx + 0x1c]
jae 0x42ac16
mov edx, dword [esp + 0x10]
add edx, 0xfffffff0
add edx, dword [ebx + 0xc]
jmp 0x42ac81
movd xmm1, edx
xorps xmm0, xmm0
cvtdq2pd xmm1, xmm1
ucomisd xmm1, xmm0
movsd qword [esp + 0x20], xmm1
lahf
test ah, 0x44
jp 0x42ac36
mov edx, dword [ebx + 0x10]
jmp 0x42ac60
mov cl, byte [ebx + 7]
mov esi, 1
mov eax, dword [esp + 0x20]
xor edx, edx
add eax, dword [esp + 0x24]
shl esi, cl
dec esi
or esi, 1
div esi
mov esi, dword [esp + 0x14]
shl edx, 5
add edx, dword [ebx + 0x10]
lea ebx, [ebx]
cmp dword [edx + 0x18], 3
jne 0x42ac75
movsd xmm0, qword [edx + 0x10]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x42ac81
mov edx, dword [edx + 0x1c]
test edx, edx
jne 0x42ac60
mov edx, 0x474770
mov eax, dword [edx]
mov ecx, edi
mov dword [esi], eax
mov eax, dword [edx + 4]
mov dword [esi + 4], eax
mov eax, dword [edx + 8]
mov edx, 0xfffffffd
mov dword [esi + 8], eax
add dword [edi + 8], 0x10
push 0xffffffffffffffff
call fcn.0042a360
add esp, 4
test eax, eax
je 0x42acd3
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x1c]
jge 0x42acc6
push str.invalid_order_function_for_sorting
push edi
call fcn.004130c0
mov edx, dword [esp + 0x30]
add esp, 8
add dword [edi + 8], 0xfffffff0
mov eax, dword [esp + 0x10]
jmp 0x42abe1
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
cmp esi, ebx
jl 0x42af35
mov ecx, dword [edi + 8]
lea eax, [ebx - 1]
cmp dword [edi + 0xc], ecx
mov edx, 0x474770
mov dword [esp + 0x10], ecx
cmovb edx, dword [edi + 0xc]
mov dword [esp + 0x20], edx
mov edx, dword [edx]
mov dword [esp + 0x14], edx
cmp eax, dword [edx + 0x1c]
jae 0x42ae4d
mov eax, dword [edx + 0xc]
mov ecx, ebx
shl ecx, 4
lea edx, [ecx - 0x10]
mov ecx, dword [esp + 0x14]
add edx, eax
cmp edx, 0x474770
jne 0x42ad4e
movd xmm0, ebx
lea eax, [esp + 0x68]
cvtdq2pd xmm0, xmm0
mov edx, ecx
mov dword [esp + 0x70], 3
push eax
mov ecx, edi
movsd qword [esp + 0x6c], xmm0
call fcn.004171c0
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 0x10]
mov dword [edx], ecx
mov ecx, dword [eax - 0xc]
mov dword [edx + 4], ecx
mov ecx, dword [eax - 8]
mov dword [edx + 8], ecx
mov eax, dword [edi + 8]
cmp dword [eax - 8], 4
jl 0x42ad91
mov eax, dword [eax - 0x10]
test byte [eax + 5], 3
je 0x42ad91
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
test byte [edx + 5], 4
je 0x42ad91
mov ecx, dword [edi + 0x10]
and byte [edx + 5], 0xfb
mov eax, dword [ecx + 0x28]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x28], edx
add dword [edi + 8], 0xfffffff0
lea eax, [esi - 1]
mov ecx, dword [edi + 8]
mov edx, 0x474770
cmp dword [edi + 0xc], ecx
mov dword [esp + 0x20], ecx
cmovb edx, dword [edi + 0xc]
mov dword [esp + 0x10], edx
mov ebx, dword [edx]
cmp eax, dword [ebx + 0x1c]
jae 0x42aec5
mov eax, dword [ebx + 0xc]
mov edx, esi
shl edx, 4
add eax, 0xfffffff0
add edx, eax
cmp edx, 0x474770
jne 0x42ae01
movd xmm0, esi
lea eax, [esp + 0x88]
cvtdq2pd xmm0, xmm0
push eax
mov edx, ebx
mov dword [esp + 0x94], 3
mov ecx, edi
movsd qword [esp + 0x8c], xmm0
call fcn.004171c0
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax - 0x10]
mov dword [edx], ecx
mov ecx, dword [eax - 0xc]
mov dword [edx + 4], ecx
mov ecx, dword [eax - 8]
mov dword [edx + 8], ecx
mov eax, dword [edi + 8]
cmp dword [eax - 8], 4
jl 0x42ae44
mov eax, dword [eax - 0x10]
test byte [eax + 5], 3
je 0x42ae44
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
test byte [edx + 5], 4
je 0x42ae44
mov ecx, dword [edi + 0x10]
and byte [edx + 5], 0xfb
mov eax, dword [ecx + 0x28]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x28], edx
mov edx, dword [esp + 0x2c]
jmp 0x42aae6
movd xmm1, ebx
xorps xmm0, xmm0
cvtdq2pd xmm1, xmm1
ucomisd xmm1, xmm0
movsd qword [esp + 0x30], xmm1
lahf
test ah, 0x44
jp 0x42ae71
mov edx, dword [edx + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x42aea0
mov cl, byte [edx + 7]
mov esi, 1
mov eax, dword [esp + 0x30]
xor edx, edx
add eax, dword [esp + 0x34]
shl esi, cl
dec esi
mov ecx, dword [esp + 0x14]
or esi, 1
div esi
mov esi, dword [esp + 0x28]
shl edx, 5
add edx, dword [ecx + 0x10]
lea esp, [esp]
cmp dword [edx + 0x18], 3
jne 0x42aeb9
movsd xmm0, qword [edx + 0x10]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x42ad1d
mov edx, dword [edx + 0x1c]
test edx, edx
jne 0x42aea0
jmp 0x42ad25
movd xmm1, esi
xorps xmm0, xmm0
cvtdq2pd xmm1, xmm1
ucomisd xmm1, xmm0
movsd qword [esp + 0x30], xmm1
lahf
test ah, 0x44
jp 0x42aee5
mov edx, dword [ebx + 0x10]
jmp 0x42af10
mov cl, byte [ebx + 7]
mov esi, 1
mov eax, dword [esp + 0x30]
xor edx, edx
add eax, dword [esp + 0x34]
shl esi, cl
dec esi
or esi, 1
div esi
mov esi, dword [esp + 0x28]
shl edx, 5
add edx, dword [ebx + 0x10]
lea esp, [esp]
cmp dword [edx + 0x18], 3
jne 0x42af29
movsd xmm0, qword [edx + 0x10]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x42adc7
mov edx, dword [edx + 0x1c]
test edx, edx
jne 0x42af10
jmp 0x42adcf
add dword [edi + 8], 0xffffffd0
mov ecx, 0x474770
mov esi, dword [edi + 8]
cmp dword [edi + 0xc], esi
mov edx, dword [esp + 0x18]
cmovb ecx, dword [edi + 0xc]
mov ecx, dword [ecx]
call fcn.00417330
mov edx, ebx
mov ecx, dword [eax]
mov dword [esi], ecx
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov ecx, 0x474770
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
add dword [edi + 8], 0x10
mov esi, dword [edi + 8]
cmp dword [edi + 0xc], esi
cmovb ecx, dword [edi + 0xc]
mov ecx, dword [ecx]
call fcn.00417330
mov edx, dword [esp + 0x18]
mov ecx, dword [eax]
mov dword [esi], ecx
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov ecx, 0x474770
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
add dword [edi + 8], 0x10
mov esi, dword [edi + 8]
cmp dword [edi + 0xc], esi
cmovb ecx, dword [edi + 0xc]
mov dword [esp + 0x10], ecx
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.00417330
cmp eax, 0x474770
jne 0x42aff2
movd xmm0, dword [esp + 0x18]
lea eax, [esp + 0xa8]
mov edx, dword [esp + 0x20]
mov ecx, edi
cvtdq2pd xmm0, xmm0
push eax
mov dword [esp + 0xb4], 3
movsd qword [esp + 0xac], xmm0
call fcn.004171c0
add esp, 4
mov ecx, dword [esi - 0x10]
mov dword [eax], ecx
mov ecx, dword [esi - 0xc]
mov dword [eax + 4], ecx
mov ecx, dword [esi - 8]
mov dword [eax + 8], ecx
mov eax, dword [edi + 8]
cmp dword [eax - 8], 4
jl 0x42b031
mov eax, dword [eax - 0x10]
test byte [eax + 5], 3
je 0x42b031
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
test byte [edx + 5], 4
je 0x42b031
mov ecx, dword [edi + 0x10]
and byte [edx + 5], 0xfb
mov eax, dword [ecx + 0x28]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x28], edx
add dword [edi + 8], 0xfffffff0
mov ecx, 0x474770
mov esi, dword [edi + 8]
mov edx, ebx
cmp dword [edi + 0xc], esi
cmovb ecx, dword [edi + 0xc]
mov dword [esp + 0x10], ecx
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.00417330
cmp eax, 0x474770
jne 0x42b090
mov edx, dword [esp + 0x20]
lea eax, [esp + 0xc8]
movd xmm0, ebx
mov ecx, edi
cvtdq2pd xmm0, xmm0
push eax
mov dword [esp + 0xd4], 3
movsd qword [esp + 0xcc], xmm0
call fcn.004171c0
add esp, 4
mov ecx, dword [esi - 0x10]
mov dword [eax], ecx
mov ecx, dword [esi - 0xc]
mov dword [eax + 4], ecx
mov ecx, dword [esi - 8]
mov dword [eax + 8], ecx
mov eax, dword [edi + 8]
cmp dword [eax - 8], 4
jl 0x42b0cf
mov eax, dword [eax - 0x10]
test byte [eax + 5], 3
je 0x42b0cf
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
test byte [edx + 5], 4
je 0x42b0cf
mov ecx, dword [edi + 0x10]
and byte [edx + 5], 0xfb
mov eax, dword [ecx + 0x28]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x28], edx
mov esi, dword [ebp + 8]
mov eax, ebx
mov edx, dword [esp + 0x1c]
mov ecx, esi
add dword [edi + 8], 0xfffffff0
sub ecx, ebx
sub eax, edx
cmp eax, ecx
jge 0x42b0f0
dec ebx
lea eax, [ebx + 2]
mov dword [esp + 0x1c], eax
jmp 0x42b0fb
lea edx, [ebx + 1]
mov ebx, esi
lea esi, [edx - 2]
mov dword [ebp + 8], esi
push ebx
mov ecx, edi
call fcn.0042a460
mov edx, dword [esp + 0x20]
add esp, 4
xorps xmm0, xmm0
cmp edx, esi
jl 0x42a481
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret