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

Disassembly:
jmp 0x789409
push 0x54
mov eax, 0x7b5481
call fcn.0053ba0f
mov ebx, ecx
mov ecx, 0x25aeeb6
call fcn.0053c469
mov eax, dword [0xa69070]
cmp dword [eax + 0x24], 0x7534
jne 0x789433
and dword [ebx + 0x1c], 0
mov ecx, dword [0xa6906c]
mov eax, dword [ecx]
call dword [eax + 8]
mov edx, dword [ebx]
mov edi, eax
mov ecx, ebx
mov dword [ebp - 0x34], edi
call dword [edx + 0x38]
test eax, eax
je 0x789d0f
mov ecx, edi
xorps xmm0, xmm0
sub ecx, dword [ebx + 0x80]
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
comiss xmm0, xmm1
ja 0x789d0a
mov eax, dword [ebx + 0x9c]
cmp eax, 9
je 0x78947d
cmp eax, 0xa
jne 0x789489
mov ecx, dword [0xa6905c]
push ebx
call fcn.00538aa8
mov ecx, dword [ebx + 0x1c]
movss xmm1, dword [0x7bd184]
test ecx, ecx
je 0x7894bb
mov eax, dword [ecx + 0x28]
mov dword [ebx + 0x90], eax
mov eax, dword [ecx + 0x2c]
mov dword [ebx + 0x98], eax
movss xmm0, dword [ecx + 0x30]
addss xmm0, xmm1
movss dword [ebx + 0x94], xmm0
lea eax, [ebx + 0x84]
push eax
lea eax, [ebp - 0x48]
lea ecx, [ebx + 0x90]
push eax
call fcn.0053c504
movss xmm0, dword [ebp - 0x40]
push ecx
push ecx
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x48]
movss dword [esp], xmm0
call fcn.005370c2
cmp dword [ebx + 0x9c], 1
fsub dword [0x7c0e90]
pop ecx
pop ecx
fstp dword [ebx + 0xa0]
jne 0x7895c5
mov ecx, dword [0xa69064]
push 0x2bf20
push 1
push 0x2c4
call fcn.00538c42
mov esi, eax
test esi, esi
je 0x789d0f
mov edx, dword [esi + 0x318]
lea eax, [ebp - 0x28]
push eax
push edx
mov ecx, dword [edx]
call dword [ecx + 0x34]
mov ecx, dword [esi + 0x318]
lea edx, [ebp - 0x2c]
push 0
push edx
push 0
mov eax, dword [ecx]
push 0
push ecx
call dword [eax + 0x2c]
mov eax, dword [ebp - 0x18]
xor edx, edx
push 0x18
pop ecx
div ecx
test eax, eax
jle 0x78956f
xor edx, edx
mov ecx, dword [ebp - 0x2c]
lea edx, [edx + 0x18]
or dword [edx + ecx - 0xc], 0xffffffff
sub eax, 1
jne 0x78955f
mov eax, dword [esi + 0x318]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
lea eax, [ebx + 0x84]
mov dword [esi + 0x298], 0x13
push eax
lea eax, [ebp - 0x48]
lea ecx, [ebx + 0x90]
push eax
call fcn.0053c504
movss xmm0, dword [ebp - 0x40]
push ecx
push ecx
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x48]
movss dword [esp], xmm0
call fcn.005370c2
fsub dword [0x7c0e90]
pop ecx
pop ecx
fstp dword [ebx + 0xa0]
push 2
pop eax
cmp dword [ebx + 0x9c], eax
jne 0x789629
movss xmm1, dword [0x7c742c]
comiss xmm1, dword [ebx + 0xbc]
jae 0x789629
movss xmm0, dword [ebx + 0xc0]
comiss xmm0, xmm1
jae 0x789629
mov eax, edi
sub eax, dword [ebx + 0x80]
movd xmm1, eax
mov eax, dword [ebx + 0xa8]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7bd190]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
addss xmm1, dword [0x7becf8]
jmp 0x78965a
mov eax, edi
sub eax, dword [ebx + 0x80]
movd xmm1, eax
mov eax, dword [ebx + 0xa8]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x7bd190]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebx + 0xa4], xmm1
movss xmm0, dword [0x7bd184]
comiss xmm0, xmm1
jbe 0x789cfe
subss xmm0, xmm1
lea ecx, [ebx + 0x84]
push ecx
lea eax, [ebp - 0x1c]
movss dword [esp], xmm0
push eax
call fcn.0053cf6d
movss xmm0, dword [ebx + 0xa4]
lea ecx, [ebx + 0x90]
push ecx
mov esi, eax
movss dword [esp], xmm0
lea eax, [ebp - 0x60]
push eax
call fcn.0053cf6d
push eax
lea eax, [ebp - 0x48]
mov ecx, esi
push eax
call fcn.0053721b
mov ecx, dword [ebx + 0x9c]
lea edx, [ebx + 0x74]
mov esi, eax
mov edi, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
test ecx, ecx
jne 0x789704
mov edi, dword [ebx + 0xb0]
test edi, edi
je 0x7896dd
add edi, 0x74
mov esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebx + 0xb4]
test edi, edi
je 0x7896ef
add edi, 0x74
mov esi, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebx + 0xb8]
test edi, edi
je 0x7897b3
mov esi, edx
jmp 0x7897ad
cmp ecx, 1
jne 0x789771
cmp dword [ebx + 0xc4], 0
jne 0x7897e6
movss xmm0, dword [0x7bd248]
comiss xmm0, dword [ebx + 0xa4]
jae 0x7897e6
mov dword [ebx + 0xc4], ecx
mov ecx, dword [0xa6907c]
test ecx, ecx
je 0x7897e6
mov esi, 0xa1
push esi
call fcn.0053800d
test eax, eax
je 0x7897e6
mov ecx, dword [0xa6907c]
push esi
call fcn.0053800d
push 0
push 0xffffffffffffffff
push 0
push 0
push 0
mov ecx, eax
call fcn.0053b375
jmp 0x7897e6
cmp ecx, 4
je 0x78977b
cmp ecx, 6
jne 0x7897e6
mov edi, dword [ebx + 0xb0]
test edi, edi
je 0x78978d
add edi, 0x74
mov esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebx + 0xb4]
test edi, edi
je 0x7897a0
add edi, 0x74
lea esi, [ebx + 0x74]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebx + 0xb8]
test edi, edi
je 0x7897b3
lea esi, [ebx + 0x74]
add edi, 0x74
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebx + 0xac]
test edi, edi
je 0x7897e6
movss xmm0, dword [ebx + 0x7c]
mov eax, dword [edi]
push ecx
push ecx
mov ecx, esp
mov esi, dword [eax + 0x3c]
push ecx
push ecx
movss dword [esp + 4], xmm0
movss xmm0, dword [ebx + 0x74]
movss dword [esp], xmm0
call fcn.005377ac
mov ecx, edi
call esi
mov eax, dword [ebx + 0x9c]
push 2
pop edx
sub eax, edx
je 0x7898ef
mov esi, dword [ebp - 0x34]
sub eax, 1
je 0x7898b2
sub eax, 3
jne 0x78992f
xor edx, edx
mov ecx, 0xfa
mov eax, esi
div ecx
push ecx
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x7bd190]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x7bd1d4]
divss xmm0, dword [0x7c5bb4]
movss dword [ebx + 0xa0], xmm0
movss xmm0, dword [ebx + 0xa4]
mulss xmm0, dword [0x7bd1d4]
mulss xmm0, dword [0x7bed40]
movss dword [esp], xmm0
call fcn.00537559
fstp dword [ebp - 0x2c]
movss xmm0, dword [ebp - 0x2c]
addss xmm0, dword [ebx + 0x74]
movss dword [ebx + 0x74], xmm0
movss xmm0, dword [ebx + 0xa4]
mulss xmm0, dword [0x7bd1d4]
mulss xmm0, dword [0x7bed40]
movss dword [esp], xmm0
call fcn.00537559
fstp dword [ebp - 0x2c]
movss xmm0, dword [ebp - 0x2c]
addss xmm0, dword [ebx + 0x7c]
movss dword [ebx + 0x7c], xmm0
jmp 0x78992b
xor edx, edx
mov eax, esi
mov ecx, 0xfa
div ecx
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x7bd190]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x7bd1d4]
divss xmm0, dword [0x7c7430]
movss dword [ebx + 0xa0], xmm0
jmp 0x78992c
movss xmm0, dword [ebx + 0xa4]
mulss xmm0, dword [0x7bd1d4]
push ecx
movss dword [esp], xmm0
call fcn.00537559
fmul dword [ebx + 0xbc]
mov esi, dword [ebp - 0x34]
fmul dword [0x7c0e84]
fstp dword [ebp - 0x2c]
movss xmm0, dword [ebp - 0x2c]
addss xmm0, dword [ebx + 0x78]
movss dword [ebx + 0x78], xmm0
pop ecx
push 2
pop edx
mov eax, esi
sub eax, dword [0x25a4ce8]
cmp eax, 0x14
jae 0x789945
mov dword [ebp - 0x2c], 1
jmp 0x789951
push 4
cmp eax, 0x1e
pop ecx
cmovb ecx, edx
mov dword [ebp - 0x2c], ecx
and dword [ebp - 0x3c], 0
call dword [sym.imp.ucrtbased.dll_rand]
push 5
pop ecx
cdq
idiv ecx
push 0x184
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x38], xmm0
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x4c], esi
and dword [ebp - 4], 0
test esi, esi
je 0x7899db
push 0x184
mov ecx, esi
call fcn.00538f94
movss xmm0, dword [ebp - 0x38]
mov ecx, esi
mulss xmm0, dword [0x7bd248]
push 0x50
push 1
sub esp, 0x10
addss xmm0, dword [0x7c0e88]
mov dword [esp + 0xc], 0x3a83126f
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
push 0x3e8
push 0
call fcn.0053cb2b
mov edi, eax
mov dword [ebp - 0x30], eax
jmp 0x7899e0
xor edi, edi
mov dword [ebp - 0x30], edi
or dword [ebp - 4], 0xffffffff
test edi, edi
je 0x789ce4
movss xmm1, dword [ebp - 0x38]
lea ecx, [ebp - 0x48]
mulss xmm1, dword [0x7bd1c4]
sub esp, 0xc
movaps xmm0, xmm1
addss xmm0, dword [ebx + 0x7c]
movss dword [esp + 8], xmm0
movss xmm0, dword [ebx + 0x78]
subss xmm0, dword [str.333_]
addss xmm0, xmm1
addss xmm1, dword [ebx + 0x74]
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.0053a1a0
add edi, 0x74
lea esi, [ebp - 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x30]
xor edi, edi
inc edi
mov dword [esi + 0x6c], edi
mov dword [esi + 0x100], edi
mov eax, dword [ebx + 0x9c]
test eax, eax
je 0x789a85
sub eax, edi
je 0x789a7e
sub eax, edi
je 0x789a77
sub eax, edi
je 0x789a70
sub eax, edi
je 0x789a85
sub eax, edi
jne 0x789a91
push 0xff6677ff
jmp 0x789a8a
push 0xff555555
jmp 0x789a8a
push 0xffffee55
jmp 0x789a8a
push 0xff3333ff
jmp 0x789a8a
push 0xffff7711
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x3c]
mov eax, dword [0xa69070]
push esi
mov ecx, dword [eax + 0x2c]
call fcn.0053b785
cmp dword [ebp - 0x3c], 3
jne 0x789bbf
cmp dword [ebx + 0x9c], 2
jne 0x789bbf
push 0x184
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x50], esi
mov dword [ebp - 4], edi
test esi, esi
je 0x789b22
push 0x184
mov ecx, esi
call fcn.00538f94
movss xmm0, dword [ebp - 0x38]
mov ecx, esi
mulss xmm0, dword [0x7bd248]
push 0x50
push edi
sub esp, 0x10
addss xmm0, dword [0x7c0e88]
mov dword [esp + 0xc], 0x3a83126f
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
push 0x320
push 0x3b
call fcn.0053cb2b
mov ecx, eax
mov dword [ebp - 0x30], eax
jmp 0x789b27
xor ecx, ecx
mov dword [ebp - 0x30], ecx
or dword [ebp - 4], 0xffffffff
test ecx, ecx
je 0x789bbf
movss xmm0, dword [ebx + 0x7c]
lea ecx, [ebp - 0x60]
subss xmm0, dword [0x7bd1c4]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [ebx + 0x78]
subss xmm0, dword [str.333_]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebx + 0x74]
subss xmm0, dword [0x7bd1c4]
movss dword [esp], xmm0
call fcn.0053a1a0
mov ecx, dword [ebp - 0x30]
lea esi, [ebp - 0x60]
and dword [ecx + 0x6c], 0
lea edi, [ecx + 0x74]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [0xa69074]
xor edi, edi
inc edi
cmp dword [eax + 0x350], edi
je 0x789b9e
cmp dword [eax + 0x35c], edi
jne 0x789ba1
mov dword [ecx + 0x6c], edi
mov eax, dword [ecx]
push 0xffffffffffffffff
mov dword [ecx + 0x100], edi
call dword [eax + 0x3c]
mov eax, dword [0xa69070]
mov ecx, dword [ebp - 0x30]
push ecx
mov ecx, dword [eax + 0x2c]
call fcn.0053b785
mov eax, dword [ebx + 0x9c]
test eax, eax
je 0x789bd2
cmp eax, 4
jne 0x789ce4
push 0x184
call fcn.00537b1c
mov esi, eax
pop ecx
mov dword [ebp - 0x54], esi
mov dword [ebp - 4], 2
test esi, esi
je 0x789c3d
push 0x184
mov ecx, esi
call fcn.00538f94
movss xmm0, dword [ebp - 0x38]
mov ecx, esi
mulss xmm0, dword [0x7bd248]
push 0x50
push edi
sub esp, 0x10
addss xmm0, dword [0x7c0e88]
mov dword [esp + 0xc], 0x3a83126f
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
push 0x320
push 0x3b
call fcn.0053cb2b
jmp 0x789c3f
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x30], eax
test eax, eax
je 0x789ce4
movss xmm0, dword [ebx + 0x7c]
lea ecx, [ebp - 0x1c]
subss xmm0, dword [0x7bd1c4]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [ebx + 0x78]
subss xmm0, dword [0x7bd180]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebx + 0x74]
subss xmm0, dword [0x7bd1c4]
movss dword [esp], xmm0
call fcn.0053a1a0
mov ecx, dword [ebp - 0x30]
lea esi, [ebp - 0x1c]
mov eax, dword [ecx]
lea edi, [ecx + 0x74]
and dword [ecx + 0x6c], 0
cmp dword [ebp - 0x3c], 3
movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x3c]
mov dword [ecx + 0x100], 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jne 0x789cc4
mov dword [ecx + 0x6c], 2
push 0xffffff28
jmp 0x789cd0
mov dword [ecx + 0x6c], 1
push 0xffff7711
call eax
mov ecx, dword [0xa69070]
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ecx + 0x2c]
call fcn.0053b785
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
cmp eax, dword [ebp - 0x2c]
jl 0x789955
mov eax, dword [ebp - 0x34]
mov dword [0x25a4ce8], eax
jmp 0x789d0a
mov ecx, dword [0xa6905c]
push ebx
call fcn.00538aa8
xor eax, eax
inc eax
jmp 0x789d11
xor eax, eax
call fcn.0053d6cf
ret 4