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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
movsd xmm4, qword [0x674840]
xorps xmm3, xmm3
mov eax, dword [ebp + 0x3c]
movaps xmm6, xmm3
movsd qword [esp + 0x74], xmm3
movaps xmm2, xmm4
movsd qword [esp + 0x7c], xmm3
movsd qword [esp + 0x6c], xmm6
movsd qword [esp + 0x84], xmm3
movsd qword [esp + 0x5c], xmm2
mov dword [esp], 0xffffffff
mov dword [esp + 0x40], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x58], 0
push ebx
push esi
push edi
test eax, eax
je 0x63e352
movsd xmm0, qword [eax + 8]
movsd xmm1, qword [eax]
ucomisd xmm0, xmm3
movsd qword [esp + 0x50], xmm1
lahf
test ah, 0x44
jp 0x63e360
mov dword [esp + 0x5c], 0
jmp 0x63e368
movsd xmm1, qword [0x690750]
movsd qword [esp + 0x50], xmm1
mov dword [esp + 0x5c], 1
comisd xmm3, xmm1
jbe 0x63e376
mov ecx, dword [ebp + 8]
lea ebx, [ecx - 2]
jmp 0x63e3a5
movd xmm0, dword [ebp + 8]
cvtdq2pd xmm0, xmm0
call fcn.00653da0
mulsd xmm0, qword [esp + 0x50]
mov ecx, dword [ebp + 8]
movsd xmm2, qword [esp + 0x68]
movsd xmm4, qword [0x674840]
movsd xmm6, qword [esp + 0x78]
cvttsd2si ebx, xmm0
mov eax, 0x10
cmp ebx, eax
cmovl ebx, eax
cmp ecx, ebx
cmovl ebx, ecx
mov dword [esp + 0x40], ebx
test ecx, ecx
jle 0x63e465
mov edx, dword [ebp + 0x2c]
mov ecx, edx
mov esi, dword [ebp + 0x28]
mov edi, dword [ebp + 0x24]
sub esi, edx
mov ebx, dword [ebp + 0x20]
sub edi, edx
mov eax, dword [ebp + 0x38]
sub ebx, edx
sub eax, edx
mov dword [esp + 0x3c], esi
mov edx, dword [ebp + 0x30]
mov esi, ecx
sub edx, esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 0x14]
sub edx, esi
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0x34]
sub edx, esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x2c], edx
mov edx, dword [ebp + 8]
nop word [eax + eax]
mov dword [esi + ecx], 0xffffffff
lea ecx, [ecx + 4]
mov esi, dword [esp + 0x2c]
mov dword [ecx - 4], 0xffffffff
mov dword [edi + ecx - 4], 0xffffffff
mov dword [ebx + ecx - 4], 1
mov dword [eax + ecx - 4], 1
mov eax, dword [esp + 0x48]
mov dword [eax + ecx - 4], 0
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + ecx - 4]
mov dword [esi + ecx - 4], eax
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
sub edx, 1
jne 0x63e410
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 0x38]
mov eax, bind
sub eax, ecx
mov dword [esp + 0x48], eax
xor eax, eax
test ecx, ecx
jle 0x63e492
nop dword [eax]
cmp dword [esi + eax*4], 0
je 0x63e48d
mov dword [esi + eax*4], 1
inc eax
cmp eax, ecx
jl 0x63e480
xor edi, edi
mov dword [esp + 0x24], 2
xor edx, edx
mov dword [esp + 0x3c], edi
test ecx, ecx
jle 0x63efdf
mov ecx, dword [ebp + 0x34]
mov eax, esi
mov edi, dword [ebp + 0x30]
sub ecx, esi
mov ebx, dword [esp + 0x40]
sub edi, esi
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0x20]
sub ecx, esi
mov esi, dword [ebp + 0xc]
sub esi, dword [ebp + 0x38]
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp + 0x24]
sub ecx, dword [ebp + 0x38]
mov dword [esp + 0x44], esi
mov dword [esp + 0x38], ecx
nop dword [eax + eax]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + eax]
test ecx, ecx
jne 0x63e50a
mov ecx, dword [esp + 0x34]
mov dword [edi + eax], 0xfffffffd
inc ecx
mov dword [esi + eax], 0xffffffff
mov dword [esp + 0x34], ecx
mov dword [eax], 0
jmp 0x63e560
cmp ecx, ebx
jle 0x63e536
mov ecx, dword [esp + 0x2c]
inc dword [esp + 0x3c]
mov dword [ecx + eax], 0
mov ecx, dword [esp + 0x34]
inc ecx
mov dword [edi + eax], 0xffffffff
mov dword [esp + 0x34], ecx
mov dword [esi + eax], 0xffffffff
jmp 0x63e560
mov esi, dword [ebp + 0x2c]
mov esi, dword [esi + ecx*4]
cmp esi, 0xffffffff
je 0x63e547
mov ebx, dword [ebp + 0x28]
mov dword [ebx + esi*4], edx
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax], esi
mov ebx, dword [ebp + 0x2c]
mov esi, dword [esp + 0x44]
mov dword [ebx + ecx*4], edx
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
inc edx
add eax, 4
cmp edx, dword [ebp + 8]
jl 0x63e4e0
mov esi, dword [ebp + 8]
cmp ecx, esi
jge 0x63efec
mov ebx, dword [ebp + 0x10]
or edi, 0xffffffff
mov edx, dword [ebp + 0x20]
jmp 0x63e59e
movsd xmm2, qword [esp + 0x68]
movsd xmm4, qword [0x674840]
mov eax, dword [esp + 0x4c]
cmp eax, esi
jge 0x63e5c8
mov ecx, dword [ebp + 0x2c]
nop dword [eax]
mov ebx, dword [ecx + eax*4]
mov dword [esp + 0xc], ebx
cmp ebx, 0xffffffff
jne 0x63e5c1
inc eax
cmp eax, esi
jl 0x63e5b0
mov ebx, dword [ebp + 0x10]
mov edi, dword [esp + 0xc]
mov ecx, dword [ebp + 0x24]
mov dword [esp + 0x4c], eax
mov ecx, dword [ecx + edi*4]
cmp ecx, 0xffffffff
je 0x63e5e1
mov esi, dword [ebp + 0x28]
mov dword [esi + ecx*4], 0xffffffff
mov esi, dword [ebp + 0x2c]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x30], 0
mov dword [esi + eax*4], ecx
mov ecx, dword [esp + 0xc]
mov eax, dword [ebp + 0x30]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + ecx*4]
add dword [esp + 0x34], eax
mov dword [esp + 0x44], eax
neg eax
mov dword [esp + 0x40], esi
test esi, esi
mov dword [edx + ecx*4], eax
mov esi, dword [edi + ecx*4]
jne 0x63e731
mov ebx, dword [ebp + 0x10]
lea eax, [esi - 1]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x28], esi
mov eax, dword [eax + ecx*4]
dec eax
add eax, esi
cmp esi, eax
jg 0x63e6ae
mov edi, dword [esp + 0x14]
nop word [eax + eax]
mov eax, dword [ebx + esi*4]
mov ecx, dword [edx + eax*4]
test ecx, ecx
jle 0x63e692
add dword [esp + 0x30], ecx
inc edi
neg ecx
mov dword [esp + 0x14], edi
mov dword [edx + eax*4], ecx
mov ecx, dword [ebp + 0x28]
mov dword [ebx + edi*4], eax
mov edx, dword [ecx + eax*4]
mov ecx, dword [ebp + 0x24]
mov ecx, dword [ecx + eax*4]
cmp ecx, 0xffffffff
je 0x63e676
mov edi, dword [ebp + 0x28]
mov dword [edi + ecx*4], edx
mov edi, dword [esp + 0x14]
cmp edx, 0xffffffff
je 0x63e683
mov eax, dword [ebp + 0x24]
mov dword [eax + edx*4], ecx
jmp 0x63e68f
mov edx, dword [ebp + 0x34]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp + 0x2c]
mov dword [edx + eax*4], ecx
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x14]
inc esi
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x28]
dec ebx
mov eax, dword [eax + ecx*4]
add eax, ebx
mov ebx, dword [ebp + 0x10]
cmp esi, eax
jle 0x63e640
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x14]
mov edx, dword [ebp + 0x34]
mov eax, dword [esp + 0x30]
mov dword [edx + ecx*4], eax
mov eax, esi
mov edx, dword [esp + 0x28]
sub eax, edx
mov dword [edi + ecx*4], edx
inc eax
mov edx, dword [esp + 0xc]
mov ecx, dword [ebp + 0x14]
mov dword [ecx + edx*4], eax
mov eax, 0xfffffffe
mov ecx, dword [ebp + 0x30]
sub eax, dword [esp + 0x30]
sub eax, dword [esp + 0x44]
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [ebp + 0x20]
cmp ecx, 2
jl 0x63e6f7
cmp ecx, dword [esp + 0x48]
jl 0x63e71c
mov ecx, dword [ebp + 0x38]
xor eax, eax
nop dword [eax]
cmp dword [ecx + eax*4], 0
je 0x63e70d
mov dword [ecx + eax*4], 1
inc eax
cmp eax, dword [ebp + 8]
jl 0x63e700
mov ecx, 2
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
cmp eax, esi
jg 0x63e9d5
jmp 0x63e959
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x40]
sub eax, ecx
mov dword [esp + 0x1c], eax
inc ecx
mov eax, 1
mov dword [esp + 0x14], eax
cmp ecx, eax
jl 0x63e944
mov edx, dword [esp + 0xc]
nop
cmp eax, dword [esp + 0x40]
jle 0x63e772
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
mov edx, esi
jmp 0x63e783
mov ecx, dword [ebx + esi*4]
inc esi
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x18], ecx
mov edx, dword [edi + ecx*4]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x20], eax
cmp eax, 1
jl 0x63e90b
dec eax
mov dword [esp + 0x10], eax
mov edi, dword [ebx + edx*4]
inc edx
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x2c], edi
mov eax, dword [eax + edi*4]
mov dword [esp + 0x38], eax
test eax, eax
jle 0x63e8f9
mov ecx, dword [ebp + 0x18]
cmp dword [ebp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
jl 0x63e8b3
mov eax, dword [esp + 0xc]
mov edi, dword [ebp + 0xc]
mov ebx, dword [esp + 0xc]
mov dword [edi + eax*4], esi
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0x14]
sub dword [esi + ebx*4], eax
mov ebx, dword [ebp + 0x10]
jne 0x63e7e7
mov eax, dword [esp + 0xc]
mov dword [edi + eax*4], 0xffffffff
mov eax, dword [esp + 0x10]
mov dword [edi + ecx*4], edx
mov dword [esi + ecx*4], eax
test eax, eax
jne 0x63e7fc
mov dword [edi + ecx*4], 0xffffffff
inc dword [esp + 0x60]
xor ecx, ecx
mov eax, dword [ebp + 8]
lea esi, [ecx - 2]
mov edx, dword [edi + ecx*4]
test edx, edx
js 0x63e81b
mov eax, dword [ebx + edx*4]
mov dword [edi + ecx*4], eax
mov eax, dword [ebp + 8]
mov dword [ebx + edx*4], esi
inc ecx
dec esi
cmp ecx, eax
jl 0x63e808
mov eax, dword [esp + 0x28]
xor edx, edx
xor ecx, ecx
lea edi, [eax - 1]
test edi, edi
js 0x63e875
mov esi, 0xfffffffe
sub esi, dword [ebx + edx*4]
inc edx
test esi, esi
js 0x63e86d
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + esi*4]
mov dword [ebx + ecx*4], eax
mov eax, dword [ebp + 0xc]
mov dword [eax + esi*4], ecx
inc ecx
mov eax, dword [ebp + 0x14]
mov esi, dword [eax + esi*4]
sub esi, 2
js 0x63e86d
inc esi
nop dword [eax]
mov eax, dword [ebx + edx*4]
inc edx
mov dword [ebx + ecx*4], eax
inc ecx
sub esi, 1
jne 0x63e860
cmp edx, edi
jle 0x63e830
mov eax, dword [esp + 0x28]
mov edx, dword [ebp + 0x1c]
mov edi, ecx
dec edx
cmp eax, edx
jg 0x63e893
sub edx, eax
lea esi, [ebx + eax*4]
inc edx
mov eax, dword [esi]
lea esi, [esi + 4]
mov dword [ebx + ecx*4], eax
inc ecx
sub edx, 1
jne 0x63e885
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x18]
mov dword [ebp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x28], edi
mov edx, dword [eax + edx*4]
mov edi, dword [esp + 0x2c]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x38]
add dword [esp + 0x30], eax
neg eax
mov ecx, dword [ebp + 0x20]
mov dword [ecx + edi*4], eax
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x24]
mov dword [ebx + eax*4], edi
inc eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x28]
mov eax, dword [eax + edi*4]
cmp ecx, 0xffffffff
je 0x63e8e3
mov ebx, dword [ebp + 0x28]
mov dword [ebx + ecx*4], eax
mov ebx, dword [ebp + 0x10]
cmp eax, 0xffffffff
je 0x63e8ed
mov edi, dword [ebp + 0x24]
jmp 0x63e8f6
mov eax, dword [ebp + 0x34]
mov eax, dword [eax + edi*4]
mov edi, dword [ebp + 0x2c]
mov dword [edi + eax*4], ecx
dec dword [esp + 0x10]
sub dword [esp + 0x20], 1
jne 0x63e795
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp ecx, edx
je 0x63e92b
mov eax, 0xfffffffe
sub eax, edx
mov dword [edi + ecx*4], eax
mov eax, dword [ebp + 0x38]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
inc eax
mov ebx, dword [ebp + 0x10]
inc ecx
mov dword [esp + 0x14], eax
cmp eax, ecx
jle 0x63e760
mov esi, dword [ebp + 0x1c]
mov ecx, dword [esp + 0xc]
dec esi
mov dword [esp + 0x14], esi
jmp 0x63e6b2
mov ecx, dword [esp + 0x24]
mov esi, dword [ebx + eax*4]
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x63e9be
mov edi, dword [edx + esi*4]
dec eax
neg edi
sub ecx, edi
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + esi*4]
add eax, ecx
cmp ecx, eax
jg 0x63e9be
mov edx, dword [ebx + ecx*4]
mov eax, dword [ebp + 0x38]
mov eax, dword [eax + edx*4]
cmp eax, dword [esp + 0x24]
jl 0x63e995
sub eax, edi
jmp 0x63e9a3
test eax, eax
je 0x63e9a3
mov eax, dword [ebp + 0x34]
mov eax, dword [eax + edx*4]
add eax, dword [esp + 0x1c]
mov ebx, dword [ebp + 0x38]
inc ecx
mov dword [ebx + edx*4], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x2c]
mov ebx, dword [ebp + 0x10]
dec edx
mov eax, dword [eax + esi*4]
add eax, edx
cmp ecx, eax
jle 0x63e982
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
inc eax
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x10], eax
cmp eax, esi
jle 0x63e955
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
cmp eax, esi
jg 0x63ebcb
mov eax, dword [ebx + eax*4]
mov edx, dword [ebp + 0x30]
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], 0
mov ecx, dword [edi + eax*4]
xor edi, edi
mov eax, dword [edx + eax*4]
mov edx, ecx
add eax, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], eax
dec eax
cmp dword [esp + 0x5c], edi
je 0x63ea6c
mov esi, ecx
cmp ecx, eax
jg 0x63ea9e
nop dword [eax]
mov ecx, dword [ebx + esi*4]
mov eax, dword [ebp + 0x38]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x63ea60
sub eax, dword [esp + 0x24]
mov ebx, dword [ebp + 0x10]
test eax, eax
jle 0x63ea44
mov dword [ebx + edx*4], ecx
add edi, eax
inc edx
add dword [esp + 0x20], ecx
jmp 0x63ea60
mov ebx, dword [ebp + 0xc]
mov eax, 0xfffffffe
sub eax, dword [esp + 0xc]
mov dword [ebx + ecx*4], eax
mov eax, dword [ebp + 0x38]
mov ebx, dword [ebp + 0x10]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 0x10]
inc esi
dec eax
cmp esi, eax
jle 0x63ea20
jmp 0x63ea9a
cmp dword [esp + 0x18], eax
jg 0x63ea9a
mov esi, dword [ebx + ecx*4]
mov eax, dword [ebp + 0x38]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x63ea90
mov ebx, dword [ebp + 0x10]
sub eax, dword [esp + 0x24]
add edi, eax
mov dword [ebx + edx*4], esi
inc edx
add dword [esp + 0x20], esi
mov eax, dword [esp + 0x10]
inc ecx
dec eax
cmp ecx, eax
jle 0x63ea72
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x38]
mov eax, edx
sub eax, ecx
mov ecx, dword [ebp + 0x30]
inc eax
mov dword [ecx + esi*4], eax
mov ecx, edx
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x2c], ecx
mov esi, dword [eax + esi*4]
add esi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
cmp eax, esi
jge 0x63eaed
mov eax, dword [ebx + eax*4]
mov ecx, dword [ebp + 0x20]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
jle 0x63eadc
mov dword [ebx + edx*4], eax
add edi, ecx
inc edx
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, esi
jl 0x63eac5
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
mov eax, dword [ebp + 0x30]
cmp dword [eax + esi*4], 1
jne 0x63eb37
cmp ecx, edx
jne 0x63eb37
mov edi, dword [ebp + 0xc]
mov eax, 0xfffffffe
sub eax, dword [esp + 0xc]
mov ecx, dword [ebp + 0x20]
mov dword [edi + esi*4], eax
mov eax, dword [ecx + esi*4]
neg eax
mov dword [ecx + esi*4], 0
sub dword [esp + 0x30], eax
add dword [esp + 0x44], eax
add dword [esp + 0x34], eax
mov eax, dword [ebp + 0x30]
mov dword [eax + esi*4], 0xffffffff
jmp 0x63ebb4
mov eax, dword [ebp + 0x34]
mov eax, dword [eax + esi*4]
cmp eax, edi
cmovl edi, eax
mov eax, dword [ebp + 0x34]
mov dword [eax + esi*4], edi
mov edi, dword [esp + 0x18]
mov ecx, dword [ebx + ecx*4]
mov eax, dword [esp + 0x2c]
mov dword [ebx + edx*4], ecx
sub edx, edi
mov ecx, dword [ebx + edi*4]
inc edx
mov dword [ebx + eax*4], ecx
mov eax, dword [esp + 0xc]
mov dword [ebx + edi*4], eax
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp + 0x2c]
mov dword [eax + esi*4], edx
xor edx, edx
mov eax, dword [esp + 0x20]
div dword [ebp + 8]
mov ecx, dword [edi + edx*4]
cmp ecx, 0xffffffff
jg 0x63eb9c
mov eax, 0xfffffffe
sub eax, ecx
mov ecx, dword [ebp + 0x24]
mov dword [ecx + esi*4], eax
mov eax, 0xfffffffe
sub eax, esi
mov dword [edi + edx*4], eax
mov eax, dword [ebp + 0x28]
jmp 0x63ebae
mov eax, dword [ebp + 0x28]
mov edi, dword [ebp + 0x24]
mov eax, dword [eax + ecx*4]
mov dword [edi + esi*4], eax
mov eax, dword [ebp + 0x28]
mov dword [eax + ecx*4], esi
mov edi, dword [ebp + 0xc]
mov dword [eax + esi*4], edx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, ecx
jle 0x63e9e5
jmp 0x63ebcf
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov esi, dword [ebp + 0x34]
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x64], edx
mov dword [esi + eax*4], edx
mov esi, edx
cmovg esi, dword [esp + 0x64]
mov eax, dword [esp + 0x24]
add eax, esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x24], eax
cmp eax, 2
jl 0x63ec01
cmp eax, dword [esp + 0x48]
jl 0x63ec2a
mov edx, dword [ebp + 0x38]
xor eax, eax
mov esi, dword [ebp + 8]
nop dword [eax]
cmp dword [edx + eax*4], 0
je 0x63ec1d
mov dword [edx + eax*4], 1
inc eax
cmp eax, esi
jl 0x63ec10
mov dword [esp + 0x24], 2
mov edx, dword [esp + 0x28]
mov esi, edx
mov dword [esp + 0x20], edx
cmp edx, ecx
jg 0x63ee06
mov ecx, dword [ebp + 0x20]
nop
mov eax, dword [ebx + esi*4]
cmp dword [ecx + eax*4], 0
jge 0x63edf3
mov edi, dword [ebp + 0x28]
mov ecx, dword [edi + eax*4]
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax + ecx*4]
cmp eax, 0xffffffff
je 0x63edf0
jge 0x63ec77
mov edx, 0xfffffffe
sub edx, eax
mov eax, dword [ebp + 0x2c]
mov dword [eax + ecx*4], 0xffffffff
jmp 0x63ec81
mov edx, dword [edi + eax*4]
mov dword [edi + eax*4], 0xffffffff
mov dword [esp + 0x10], edx
cmp edx, 0xffffffff
je 0x63edf0
nop
mov eax, dword [ebp + 0x24]
cmp dword [eax + edx*4], 0xffffffff
lea edi, [eax + edx*4]
mov dword [esp + 0x38], edi
je 0x63edec
mov eax, dword [ebp + 0x14]
mov esi, dword [eax + edx*4]
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x2c], esi
mov eax, dword [eax + edx*4]
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + edx*4]
lea ecx, [eax + 1]
dec eax
add eax, esi
cmp ecx, eax
jg 0x63ecf3
mov edi, dword [ebp + 0xc]
nop dword [eax + eax]
mov eax, dword [ebx + ecx*4]
inc ecx
mov ebx, dword [ebp + 0x38]
mov edx, dword [esp + 0x24]
mov dword [ebx + eax*4], edx
mov edx, dword [esp + 0x10]
mov ebx, dword [ebp + 0x10]
mov eax, dword [edi + edx*4]
dec eax
add eax, esi
cmp ecx, eax
jle 0x63ecd0
mov edi, dword [esp + 0x38]
mov ecx, dword [edi]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
cmp ecx, 0xffffffff
je 0x63edd9
nop word [eax + eax]
mov eax, dword [ebp + 0x14]
lea edi, [ecx*4]
mov dword [esp + 0x50], edi
cmp dword [edi + eax], esi
jne 0x63ed36
mov edx, dword [ebp + 0x30]
mov eax, dword [esp + 0x70]
cmp dword [edi + edx], eax
jne 0x63ed36
mov esi, 1
jmp 0x63ed38
xor esi, esi
mov eax, dword [ebp + 0xc]
mov eax, dword [edi + eax]
lea edx, [eax + 1]
test esi, esi
je 0x63edba
mov edi, dword [esp + 0x2c]
dec edi
add edi, eax
mov dword [esp + 0x74], edi
cmp edx, edi
jg 0x63ed74
mov eax, dword [ebx + edx*4]
xor ecx, ecx
mov ebx, dword [ebp + 0x38]
mov edi, dword [esp + 0x24]
cmp dword [ebx + eax*4], edi
mov ebx, dword [ebp + 0x10]
mov edi, dword [esp + 0x74]
cmove ecx, esi
mov esi, ecx
inc edx
test esi, esi
jne 0x63ed50
mov edi, dword [esp + 0x50]
test esi, esi
je 0x63edb6
mov ecx, dword [ebp + 0xc]
mov eax, 0xfffffffe
mov edx, dword [esp + 0x10]
sub eax, edx
mov dword [edi + ecx], eax
mov ecx, dword [ebp + 0x20]
mov eax, dword [edi + ecx]
add dword [ecx + edx*4], eax
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp + 0x24]
mov dword [edi + ecx], 0
mov dword [edi + eax], 0xffffffff
mov eax, dword [esp + 0x1c]
mov ecx, dword [edi + edx]
mov dword [edx + eax*4], ecx
jmp 0x63edc4
mov ecx, dword [esp + 0x18]
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x1c], ecx
mov ecx, dword [edi + eax]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
cmp ecx, 0xffffffff
jne 0x63ed10
mov edi, dword [esp + 0x38]
mov edx, dword [edi]
inc dword [esp + 0x24]
mov dword [esp + 0x10], edx
cmp edx, 0xffffffff
jne 0x63ec90
mov esi, dword [esp + 0x20]
mov ecx, dword [ebp + 0x20]
inc esi
mov dword [esp + 0x20], esi
cmp esi, dword [esp + 0x14]
jle 0x63ec40
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 8]
mov ecx, edx
sub eax, dword [esp + 0x34]
mov edi, edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
cmp edx, eax
jg 0x63eea0
mov edx, dword [ebx + edi*4]
mov esi, dword [ebp + 0x20]
mov esi, dword [esi + edx*4]
neg esi
test esi, esi
jle 0x63ee9b
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x30]
sub ecx, esi
mov dword [eax + edx*4], esi
mov eax, dword [ebp + 0x34]
mov eax, dword [eax + edx*4]
add eax, ecx
mov ecx, dword [esp + 0x50]
sub ecx, esi
cmp eax, ecx
cmovl ecx, eax
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax + ecx*4]
cmp eax, 0xffffffff
je 0x63ee60
mov esi, dword [ebp + 0x28]
mov dword [esi + eax*4], edx
mov esi, dword [ebp + 0x24]
cmp dword [esp + 0x4c], ecx
mov dword [esi + edx*4], eax
mov eax, dword [ebp + 0x28]
mov dword [eax + edx*4], 0xffffffff
mov eax, dword [ebp + 0x2c]
mov dword [eax + ecx*4], edx
mov eax, ecx
cmovl eax, dword [esp + 0x4c]
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x34]
mov dword [eax + edx*4], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov dword [ebx + ecx*4], edx
inc ecx
mov dword [esp + 0x1c], ecx
inc edi
cmp edi, eax
jle 0x63ee21
mov edi, dword [esp + 0xc]
mov edx, dword [ebp + 0x20]
mov eax, dword [esp + 0x44]
mov esi, dword [ebp + 0x14]
mov dword [edx + edi*4], eax
mov eax, ecx
sub eax, dword [esp + 0x28]
mov dword [esi + edi*4], eax
jne 0x63eed0
mov eax, dword [ebp + 0xc]
mov dword [eax + edi*4], 0xffffffff
mov eax, dword [ebp + 0x38]
mov dword [eax + edi*4], 0
cmp dword [esp + 0x40], 0
mov eax, dword [ebp + 0x1c]
cmovne eax, ecx
cmp dword [ebp + 0x40], 0
mov dword [ebp + 0x1c], eax
je 0x63efc8
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x3c]
movd xmm6, dword [esp + 0x44]
cvtdq2pd xmm6, xmm6
movd xmm7, eax
cvtdq2pd xmm7, xmm7
movaps xmm0, xmm7
addsd xmm0, xmm6
comisd xmm2, xmm0
ja 0x63ef15
movsd qword [esp + 0x68], xmm0
movaps xmm2, xmm6
movaps xmm3, xmm7
subsd xmm2, xmm4
movaps xmm1, xmm7
mulsd xmm1, xmm6
movaps xmm4, xmm6
mulsd xmm3, xmm2
mulsd xmm7, xmm1
mulsd xmm4, xmm2
mulsd xmm3, xmm6
addsd xmm6, xmm6
movaps xmm5, xmm4
mulsd xmm5, qword [0x6749e0]
addsd xmm3, xmm7
movsd xmm7, qword [0x674840]
subsd xmm6, xmm7
addsd xmm5, xmm1
mulsd xmm6, xmm4
movaps xmm0, xmm5
addsd xmm0, qword [esp + 0x80]
divsd xmm6, qword [0x690810]
movsd qword [esp + 0x80], xmm0
movaps xmm0, xmm5
addsd xmm0, qword [esp + 0x88]
addsd xmm3, xmm6
movsd qword [esp + 0x88], xmm0
movaps xmm0, xmm3
addsd xmm3, xmm5
addsd xmm0, qword [esp + 0x78]
mulsd xmm3, qword [0x6749e0]
movaps xmm6, xmm0
movsd qword [esp + 0x78], xmm6
addsd xmm3, qword [esp + 0x90]
movsd qword [esp + 0x90], xmm3
jmp 0x63efd0
movsd xmm7, qword [0x674840]
mov esi, dword [ebp + 8]
cmp dword [esp + 0x34], esi
jl 0x63e590
jmp 0x63eff4
movsd xmm7, qword [0x674840]
mov esi, dword [ebp + 8]
jmp 0x63eff8
movsd xmm7, qword [0x674840]
mov edi, dword [esp + 0x3c]
mov eax, dword [ebp + 0x40]
test eax, eax
je 0x63f0af
movsd xmm4, qword [esp + 0x68]
movd xmm3, edi
cvtdq2pd xmm3, xmm3
comisd xmm4, xmm3
ja 0x63f01a
movaps xmm4, xmm3
movaps xmm0, xmm3
movsd qword [eax + 0x30], xmm3
subsd xmm0, xmm7
movsd qword [eax + 0x68], xmm4
movaps xmm2, xmm3
addsd xmm2, xmm3
mulsd xmm0, xmm3
subsd xmm2, xmm7
movaps xmm1, xmm0
mulsd xmm1, qword [0x6749e0]
mulsd xmm2, xmm0
movaps xmm0, xmm1
addsd xmm0, qword [esp + 0x80]
divsd xmm2, qword [0x690810]
movsd qword [eax + 0x48], xmm0
movaps xmm0, xmm1
addsd xmm0, qword [esp + 0x88]
movsd qword [eax + 0x50], xmm0
movaps xmm0, xmm2
addsd xmm0, xmm1
addsd xmm2, xmm6
mulsd xmm0, qword [0x6749e0]
movsd qword [eax + 0x60], xmm2
addsd xmm0, qword [esp + 0x90]
movsd qword [eax + 0x58], xmm0
movd xmm0, dword [esp + 0x60]
cvtdq2pd xmm0, xmm0
movsd qword [eax + 0x40], xmm0
xorps xmm0, xmm0
movsd qword [eax], xmm0
xor ecx, ecx
test esi, esi
jle 0x63f120
cmp esi, 8
jb 0x63f109
mov eax, esi
and eax, 0x80000007
jns 0x63f0c8
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm2, xmmword [0x6907b0]
mov edx, esi
mov ebx, dword [ebp + 0xc]
sub edx, eax
nop word [eax + eax]
movups xmm0, xmmword [ebx + ecx*4]
movaps xmm1, xmm2
psubd xmm1, xmm0
movups xmmword [ebx + ecx*4], xmm1
movups xmm0, xmmword [ebx + ecx*4 + 0x10]
movaps xmm1, xmm2
psubd xmm1, xmm0
movups xmmword [ebx + ecx*4 + 0x10], xmm1
add ecx, 8
cmp ecx, edx
jl 0x63f0e0
jmp 0x63f10c
mov ebx, dword [ebp + 0xc]
cmp ecx, esi
jge 0x63f120
mov eax, 0xfffffffe
sub eax, dword [ebx + ecx*4]
mov dword [ebx + ecx*4], eax
inc ecx
cmp ecx, esi
jl 0x63f110
xor ecx, ecx
test esi, esi
jle 0x63f190
cmp esi, 8
jb 0x63f179
mov eax, esi
and eax, 0x80000007
jns 0x63f139
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm2, xmmword [0x6907b0]
mov edx, esi
mov ebx, dword [ebp + 0x30]
sub edx, eax
nop word [eax + eax]
movups xmm0, xmmword [ebx + ecx*4]
movaps xmm1, xmm2
psubd xmm1, xmm0
movups xmmword [ebx + ecx*4], xmm1
movups xmm0, xmmword [ebx + ecx*4 + 0x10]
movaps xmm1, xmm2
psubd xmm1, xmm0
movups xmmword [ebx + ecx*4 + 0x10], xmm1
add ecx, 8
cmp ecx, edx
jl 0x63f150
jmp 0x63f17c
mov ebx, dword [ebp + 0x30]
cmp ecx, esi
jge 0x63f190
mov eax, 0xfffffffe
sub eax, dword [ebx + ecx*4]
mov dword [ebx + ecx*4], eax
inc ecx
cmp ecx, esi
jl 0x63f180
xor edi, edi
test esi, esi
jle 0x63f21f
mov esi, dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
sub ebx, esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], ebx
nop dword [eax]
cmp dword [esi], 0
jne 0x63f210
mov ecx, dword [ebx + esi]
cmp ecx, 0xffffffff
je 0x63f210
mov edx, dword [ebp + 0x20]
lea eax, [ecx*4]
cmp dword [eax + edx], 0
mov edx, dword [ebp + 0xc]
jne 0x63f1f0
mov esi, dword [ebp + 0x20]
nop dword [eax]
nop word [eax + eax]
mov ecx, dword [eax + edx]
lea eax, [ecx*4]
cmp dword [eax + esi], 0
je 0x63f1e0
mov ebx, dword [ebp + 0xc]
mov edx, edi
mov esi, dword [ebp + 0x20]
lea eax, [ebx + edx*4]
mov edx, dword [eax]
mov dword [eax], ecx
cmp dword [esi + edx*4], 0
je 0x63f1f8
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x50]
mov eax, dword [ebp + 8]
inc edi
add esi, 4
mov dword [esp + 0x48], esi
cmp edi, eax
jl 0x63f1b0
mov esi, dword [ebp + 8]
push dword [ebp + 0x28]
mov edi, dword [ebp + 0x38]
push dword [ebp + 0x24]
mov ebx, dword [ebp + 0xc]
push dword [ebp + 0x2c]
push edi
push dword [ebp + 0x30]
push dword [ebp + 0x20]
push ebx
push esi
call fcn.0063f3b0
mov edx, dword [ebp + 8]
add esp, 0x20
xor esi, esi
test edx, edx
jle 0x63f2ed
cmp edx, 4
mov edx, dword [ebp + 0x24]
jb 0x63f2b9
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0x2c]
sub ebx, 4
lea ecx, [eax - 1]
lea ecx, [edx + ecx*4]
lea eax, [ebx + eax*4]
mov ebx, dword [ebp + 0xc]
cmp edx, eax
ja 0x63f272
cmp ecx, dword [ebp + 0x2c]
jae 0x63f2b9
mov ecx, dword [ebp + 8]
mov eax, ecx
and eax, reloc.WS2_32.dll_closesocket
jns 0x63f283
dec eax
or eax, 0xfffffffc
inc eax
sub ecx, eax
add esi, 4
cmp esi, ecx
jl 0x63f285
mov edi, dword [ebp + 0x2c]
lea eax, [ecx + 3]
cdq
and edx, 3
add edx, eax
or eax, 0xffffffff
sar edx, 2
shl edx, 4
mov ecx, edx
shr edx, 2
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
or eax, eax
mov edx, dword [ebp + 0x24]
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0x38]
mov ecx, dword [ebp + 8]
cmp esi, ecx
jge 0x63f2eb
lea eax, [edx + esi*4]
mov edx, dword [ebp + 0x2c]
sub edx, dword [ebp + 0x24]
sub ecx, esi
nop dword [eax + eax]
mov dword [edx + eax], 0xffffffff
lea eax, [eax + 4]
mov dword [eax - 4], 0xffffffff
sub ecx, 1
jne 0x63f2d0
mov edx, dword [ebp + 8]
jmp 0x63f2ed
mov edx, ecx
xor eax, eax
test edx, edx
jle 0x63f309
mov ebx, dword [ebp + 0x2c]
mov ecx, dword [edi + eax*4]
cmp ecx, 0xffffffff
je 0x63f301
mov dword [ebx + ecx*4], eax
inc eax
cmp eax, edx
jl 0x63f2f6
mov ebx, dword [ebp + 0xc]
xor ecx, ecx
xor eax, eax
test edx, edx
jle 0x63f383
mov esi, dword [ebp + 0x20]
mov edi, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x2c]
nop word [eax + eax]
mov edx, dword [ebx + eax*4]
cmp edx, 0xffffffff
je 0x63f338
mov dword [edi + edx*4], ecx
inc eax
add ecx, dword [esi + edx*4]
mov edx, dword [ebp + 8]
cmp eax, edx
jl 0x63f320
jmp 0x63f33b
mov edx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
test edx, edx
jle 0x63f383
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x24]
sub eax, ebx
mov edi, dword [ebp + 8]
sub ebx, edx
mov dword [ebp + 0x20], eax
lea esi, [ebx + edx]
cmp dword [esi + eax], 0
jne 0x63f378
mov esi, dword [esi]
cmp esi, 0xffffffff
je 0x63f375
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + esi*4]
mov dword [edx], eax
mov eax, dword [ebp + 0x24]
inc dword [eax + esi*4]
mov eax, dword [ebp + 0x20]
jmp 0x63f378
mov dword [edx], ecx
inc ecx
add edx, 4
sub edi, 1
jne 0x63f352
mov edx, dword [ebp + 8]
xor ecx, ecx
test edx, edx
jle 0x63f39e
mov ebx, dword [ebp + 0x28]
nop dword [eax]
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + ecx*4]
mov dword [ebx + eax*4], ecx
inc ecx
cmp ecx, edx
jl 0x63f390
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret