Function at 0x509660
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x68
mov eax, dword [0x64a040]
xor eax, ebp
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0xa4]
cmp dword [ecx + 0xa0], eax
je 0x5098a0
mov edi, ecx
mov edx, dword [ebp + 8]
mov eax, dword [eax - 0x30]
test eax, eax
je 0x5098b5
cmp eax, 2
je 0x509e30
cmp dword [edi + 0x6c], 0
je 0x509881
mov esi, dword [edi + 0x58]
mov ebx, dword [edi + 0x5c]
mov eax, esi
or eax, ebx
je 0x509881
mov eax, dword [edi + 0x8c]
test eax, eax
je 0x509dc4
mov ecx, dword [eax + 0xa4]
sub ecx, dword [eax + 0xa0]
cmp ecx, 0x58
jne 0x509881
lea eax, [edi + 0x58]
mov dword [esp + 0xc], eax
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x50], 0xffffffff
cmp byte [edx + 8], 0
jne 0x5097bb
mov ecx, dword [fcn.0056d830]
cmp ecx, 0x56aca0
jne 0x5097a7
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
cmp ebx, 0x7bd05af7
mov eax, esi
sbb eax, 0x863
jge 0x509f4e
mov ecx, 0xf4240
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x64f6a4]
push dword [0x64f6a0]
push ecx
push eax
call fcn.005a13d0
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov esi, dword [ebp + 8]
mov ecx, esi
cmp byte [esi + 8], 0
jne 0x509e63
test ecx, ecx
je 0x509e21
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov byte [ecx + 8], 1
mov ecx, dword [esp + 0xc]
mov esi, dword [ecx]
mov ebx, dword [ecx + 4]
jmp 0x5097c0
mov esi, edx
call dword [0x6445dc]
lea eax, [esp + 0x58]
push eax
call ecx
add esp, 4
jmp 0x509777
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov ecx, eax
sub ecx, esi
mov esi, edx
sbb esi, ebx
mov dword [esp + 0x50], eax
seto al
mov dword [esp + 0x54], edx
mov edx, esi
sar edx, 0x1f
test al, al
cmovne ecx, edx
add edx, 0x80000000
test al, al
cmove edx, esi
xor esi, esi
mov eax, 0x1c9c37f
cmp eax, ecx
mov eax, 0
sbb eax, edx
jl 0x50985e
mov dword [esp], ecx
mov ebx, ecx
add ebx, 1
mov eax, edx
adc eax, 0x80000000
mov ecx, 1
cmp ecx, ebx
sbb esi, eax
mov esi, dword [edi + 0x20]
mov ecx, dword [edi + 0x24]
jae 0x509e75
add esi, dword [esp]
adc ecx, edx
seto dl
mov eax, ecx
sar eax, 0x1f
test dl, dl
cmovne esi, eax
add eax, 0x80000000
test dl, dl
cmove eax, ecx
mov dword [edi + 0x20], esi
mov dword [edi + 0x24], eax
cmp esi, 0x186a0
mov ecx, eax
sbb ecx, 0
jge 0x509d18
cmp dword [edi + 0x8c], 0
je 0x509dc7
movzx eax, byte [0x64f50d]
test al, al
setne bl
jne 0x509dd0
mov byte [edi + 0x88], bl
movsd xmm0, qword [esp + 0x50]
movsd qword [edi + 0x58], xmm0
mov ebx, dword [edi + 0xa4]
cmp dword [edi + 0xa0], ebx
je 0x509db5
cmp dword [ebx - 0x30], 0
mov dword [ebx - 0x30], 2
je 0x509911
mov ecx, dword [esp + 0x60]
xor ecx, ebp
call fcn.005810d5
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
cmp dword [edi + 0x6c], 0
je 0x509881
mov eax, dword [edi + 0x8c]
test eax, eax
je 0x509e60
mov ecx, dword [eax + 0xa4]
sub ecx, dword [eax + 0xa0]
cmp ecx, 0x58
jne 0x509881
cmp byte [edx + 8], 0
je 0x509a43
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
mov dword [edi + 0x58], eax
mov dword [edi + 0x5c], ecx
mov dword [esp + 0x50], 0xe9
movzx eax, byte [0x64f50d]
test al, al
je 0x509881
jmp 0x509f02
mov eax, dword [ebx - 0x50]
or eax, dword [ebx - 0x4c]
jne 0x509dca
mov eax, dword [ebx - 0x48]
or eax, dword [ebx - 0x44]
jne 0x509dcd
lea edi, [ebx - 0x58]
mov edx, dword [edi]
mov esi, dword [edi + 4]
mov eax, edx
or eax, esi
mov dword [esp], ebx
jne 0x509c69
mov eax, dword [0x65c7a0]
mov ecx, dword [0x64d82c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x509ce2
cmp byte [0x65c79c], 0
je 0x509a15
mov esi, dword [ebx - 0x40]
mov edx, dword [ebx - 0x3c]
mov eax, dword [esp]
mov ebx, dword [eax - 0x34]
mov eax, edx
shld eax, esi, 0x17
mov edi, esi
shl edi, 0x17
xor edi, esi
mov ecx, dword [esp]
mov esi, dword [ecx - 0x38]
xor eax, edx
mov ecx, eax
shld ecx, edi, 0xf
mov dword [esp + 0xc], ecx
mov edx, ebx
shld edx, esi, 6
mov ecx, ebx
shr ecx, 0x1a
xor ecx, ebx
xor ecx, eax
shr eax, 0x11
xor eax, ecx
xor edx, esi
xor edx, edi
xor edx, dword [esp + 0xc]
mov ecx, dword [esp]
mov dword [ecx - 0x40], esi
mov ecx, dword [esp]
mov dword [ecx - 0x3c], ebx
mov ecx, dword [esp]
mov dword [ecx - 0x38], edx
add edx, esi
mov ecx, dword [esp]
mov dword [ecx - 0x34], eax
adc eax, ebx
mov ebx, dword [esp]
mov ecx, eax
shr ecx, 0xb
movd xmm0, ecx
shld eax, edx, 0x15
movd xmm1, eax
punpckldq xmm1, xmm0
movq qword [esp + 0x28], xmm1
fild qword [esp + 0x28]
fstp qword [esp + 0x20]
movsd xmm0, qword [esp + 0x20]
mulsd xmm0, qword [0x62d150]
movsd xmm1, qword [0x62d158]
ucomisd xmm1, xmm0
ja 0x509b95
mov dword [esp + 0x48], 0xa
movzx eax, byte [0x64f42e]
test al, al
jne 0x509ec4
lea ecx, [ebx - 0x20]
mov eax, dword [ebx - 0x10]
inc eax
mov dword [ebx - 0x10], eax
push 0
push eax
call fcn.00401120
jmp 0x5098a0
mov ecx, dword [fcn.0056d830]
cmp ecx, 0x56aca0
jne 0x509ae2
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
cmp ebx, 0x7bd05af7
mov eax, esi
sbb eax, 0x863
jge 0x509fdc
mov ecx, 0xf4240
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x64f6a4]
push dword [0x64f6a0]
push ecx
push eax
call fcn.005a13d0
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov edx, dword [ebp + 8]
cmp byte [edx + 8], 0
jne 0x509f3c
test edx, edx
je 0x509e21
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov byte [edx + 8], 1
jmp 0x5098e9
call dword [0x6445dc]
lea eax, [esp + 0x58]
push eax
call ecx
add esp, 4
jmp 0x509ab7
call dword [0x6445dc]
lea eax, [esp + 0x58]
push eax
call ecx
add esp, 4
jmp 0x509b6a
mov ecx, dword [fcn.0056d830]
cmp ecx, 0x56aca0
jne 0x509af4
xor eax, eax
lea esi, [esp + 0x58]
mov dword [esi + 4], eax
mov dword [esi], eax
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edi, dword [esi]
mov esi, dword [esi + 4]
cmp edi, 0x7bd05af7
mov eax, esi
sbb eax, 0x863
jge 0x50a16f
mov ecx, 0xf4240
mov eax, edi
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x64f6a4]
push dword [0x64f6a0]
push ecx
push eax
call fcn.005a13d0
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov edx, dword [ebp + 8]
cmp byte [edx + 8], 0
jne 0x50a0d7
test edx, edx
je 0x509e21
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov byte [edx + 8], 1
mov ebx, dword [esp]
jmp 0x509ba7
mov ecx, dword [ebp + 8]
cmp byte [ecx + 8], 0
je 0x509b06
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebx - 0x50], eax
mov dword [ebx - 0x4c], ecx
lea esi, [esp + 0x58]
push esi
call fcn.004055a0
add esp, 4
movsd xmm0, qword [esi]
movsd qword [ebx - 0x48], xmm0
jmp 0x509a15
call dword [0x6445dc]
lea eax, [esp + 0x58]
push eax
call ecx
add esp, 4
jmp 0x509c3c
mov ecx, dword [fcn.0056d830]
cmp ecx, 0x56aca0
jne 0x509bc8
xor eax, eax
lea esi, [esp + 0x58]
mov dword [esi + 4], eax
mov dword [esi], eax
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esi]
mov esi, dword [esi + 4]
cmp eax, 0x7bd05af7
mov ecx, esi
sbb ecx, 0x863
jge 0x50a1f9
mov ecx, 0xf4240
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x64f6a4]
push dword [0x64f6a0]
push ecx
push eax
call fcn.005a13d0
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov edx, dword [ebp + 8]
cmp byte [edx + 8], 0
jne 0x50a0e9
test edx, edx
je 0x509e21
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov byte [edx + 8], 1
mov edx, dword [edi]
mov esi, dword [edi + 4]
jmp 0x509c7e
mov eax, dword [ebp + 8]
cmp byte [eax + 8], 0
je 0x509bda
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
sub eax, edx
sbb ecx, esi
seto bl
mov edx, ecx
sar edx, 0x1f
test bl, bl
cmovne eax, edx
add edx, 0x80000000
test bl, bl
cmove edx, ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
sub esp, 0x10
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x58]
movsd qword [esp], xmm0
mov ecx, edi
mov edx, str.Scheduling.ThreadController.IdleDuration
call fcn.004020f0
add esp, 0x10
xor eax, eax
mov dword [edi + 4], eax
mov dword [edi], eax
mov ebx, dword [esp]
jmp 0x50993e
push 0x65c7a0
call fcn.0057dc73
add esp, 4
cmp dword [0x65c7a0], 0xffffffff
jne 0x50995f
call fcn.004112e0
mov byte [0x65c79c], al
push 0x65c7a0
call fcn.0057dcc2
add esp, 4
jmp 0x50995f
movd xmm0, esi
movd xmm1, eax
punpckldq xmm0, xmm1
movq qword [esp + 0x38], xmm0
fild qword [esp + 0x38]
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x30]
divsd xmm0, qword [0x63ca60]
cvttsd2si esi, xmm0
mov ebx, dword [edi + 0x6c]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [esp], ecx
call dword [0x6445dc]
mov ecx, ebx
push esi
push 2
call dword [esp + 8]
mov eax, esi
neg eax
cmovs eax, esi
mov ecx, 0x3e8
mul ecx
xor ecx, ecx
mov ebx, eax
neg ebx
sbb ecx, edx
test esi, esi
cmovns ecx, edx
cmovns ebx, eax
mov eax, edi
mov edi, dword [edi + 0x20]
sub edi, ebx
mov dword [esp + 0x10], eax
mov edx, dword [eax + 0x24]
sbb edx, ecx
seto al
mov esi, edx
sar esi, 0x1f
test al, al
cmovne edi, esi
mov ebx, edi
add esi, 0x80000000
test al, al
cmove esi, edx
mov edi, dword [esp + 0x10]
mov dword [edi + 0x20], ebx
mov dword [edi + 0x24], esi
jmp 0x509851
push str....._third_partylibc_srcinclude_vector:622:_assertion__empty___failed:_back___called_on_an_empty_vector_n
push 0x62a183
call fcn.005aacb0
int3
int3
int3
int3
mov esi, edi
cmp byte [edi + 0x88], 0
jne 0x509df0
mov dword [esp + 0x44], 0xe9
mov al, byte [0x64f50d]
test al, al
jne 0x50a10a
mov dword [esp + 0x48], 0xe9
mov al, byte [0x64f50d]
test al, al
jne 0x50a0a3
mov dword [esp + 0x48], 0xe9
mov al, byte [0x64f50d]
test al, al
jne 0x50a06a
mov edi, esi
jmp 0x509870
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x62a183
call fcn.005aacb0
lea ecx, [edi + 0xa0]
lea eax, [edi + 0x98]
lea esi, [esp + 0x50]
mov byte [esi], 1
mov ebx, edx
lea edx, [esp + 0x58]
mov dword [edx], 2
push eax
push ebx
push edi
push esi
call fcn.005f2af0
add esp, 0x10
jmp 0x5098a0
int3
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x50979c
mov dword [esp + 0x10], edi
mov edi, esi
mov eax, 1
add edi, eax
mov dword [esp + 8], edi
mov ebx, ecx
adc ebx, 0x80000000
mov dword [esp + 4], ebx
mov edi, dword [esp]
xor edi, esi
xor edx, ecx
mov esi, 0x80000000
add eax, 0xffffffff
mov ebx, eax
adc esi, 0xffffffff
or edx, edi
je 0x509da6
xor eax, eax
xor ecx, ecx
inc ecx
cmp ecx, dword [esp + 8]
sbb eax, dword [esp + 4]
jb 0x509da6
int3
mov esi, dword [ebx - 0xc]
test esi, esi
je 0x50a28d
movzx edi, al
lea ebx, [esp + 0x58]
mov ecx, dword [ebp + 8]
push ebx
call fcn.0050a290
lea eax, [esp + 0x50]
mov dword [eax], str.ThreadController_active
lea edx, [esp + 0x48]
mov ecx, edi
push esi
push ebx
push eax
call fcn.005f2d00
add esp, 0xc
mov ebx, dword [esp]
jmp 0x509a2c
cmp byte [edi + 0x80], 0
je 0x50a0fb
mov ecx, edi
add ecx, 0x50
movzx eax, al
lea edx, [edi + 0x70]
lea esi, [esp + 0x58]
mov dword [esi], 0
lea ebx, [esp + 0x50]
push ecx
push edx
push 2
push esi
push ebx
push eax
call fcn.005f2f80
add esp, 0x18
jmp 0x509881
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x5098e9
mov eax, dword [0x64f6a0]
mov dword [esp], eax
mov ecx, dword [0x64f6a4]
mov dword [esp + 4], ecx
push ecx
push eax
push esi
push ebx
call fcn.005a13d0
mov dword [esp + 8], eax
mov dword [esp + 0x1c], edx
mul dword [esp]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 8]
imul ecx, dword [esp + 4]
add edx, ecx
mov eax, dword [esp + 0x1c]
imul ecx, eax, 0xf4240
mov dword [esp + 0x14], ecx
imul eax, dword [esp]
add eax, edx
sub ebx, dword [esp + 0x18]
sbb esi, eax
mov ecx, 0xf4240
mov eax, dword [esp + 8]
mul ecx
mov dword [esp + 8], eax
add edx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add edx, ecx
push dword [esp + 4]
push dword [esp + 4]
push edx
push eax
call fcn.005a13d0
add eax, dword [esp + 8]
adc edx, dword [esp + 0x14]
jmp 0x50976c
mov eax, dword [0x64f6a0]
mov dword [esp], eax
mov ecx, dword [0x64f6a4]
mov dword [esp + 0xc], ecx
push ecx
push eax
push esi
push ebx
call fcn.005a13d0
mov dword [esp + 4], eax
mov dword [esp + 0x18], edx
mul dword [esp]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 4]
imul ecx, dword [esp + 0xc]
add edx, ecx
mov eax, dword [esp + 0x18]
imul ecx, eax, 0xf4240
mov dword [esp + 8], ecx
imul eax, dword [esp]
add eax, edx
sub ebx, dword [esp + 0x14]
sbb esi, eax
mov ecx, 0xf4240
mov eax, dword [esp + 4]
mul ecx
mov dword [esp + 4], eax
add edx, dword [esp + 8]
mov dword [esp + 8], edx
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add edx, ecx
push dword [esp + 0xc]
push dword [esp + 4]
push edx
push eax
call fcn.005a13d0
add eax, dword [esp + 4]
adc edx, dword [esp + 8]
jmp 0x509aaf
cmp byte [esi + 0x80], 0
je 0x50a0fb
movzx ecx, al
lea eax, [esi + 0x70]
lea edx, [esp + 0x58]
mov dword [edx], 0
lea edx, [esp + 0x48]
lea edi, [esp + 0x50]
push edi
push eax
lea eax, [esp + 0x60]
push eax
call fcn.005f2ff0
add esp, 0xc
jmp 0x509e1a
cmp byte [esi + 0x80], 0
je 0x50a0fb
movzx eax, al
lea ecx, [esi + 0x70]
lea edx, [esp + 0x58]
mov dword [edx], str.PumpOverhead
lea edi, [esp + 0x48]
push dword [esp + 0xc]
push ecx
push 1
push edx
push edi
push eax
call fcn.005c00a0
add esp, 0x18
jmp 0x509e05
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x509b90
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x509c62
push str....._third_partylibc_srcincludeoptional:806:_assertion_this__has_value___failed:_optional_operator_called_on_a_disengaged_value_n
push 0x62a183
call fcn.005aacb0
mov edx, 0xfff0bdc0
mov ecx, esi
mov dword [esp + 0x10], esi
add edx, dword [esi + 0x58]
mov ecx, dword [esi + 0x5c]
adc ecx, 0xffffffff
mov edi, 0x80000000
cmovno edi, ecx
mov ecx, 0
cmovo edx, ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], edi
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0x80], 0
je 0x50a0fb
movzx eax, al
lea ecx, [esi + 0x70]
lea edx, [esp + 0x48]
mov dword [edx], str.MessagePumpPhases
lea edi, [esp + 0x58]
push edi
push ecx
push 3
push edx
lea ecx, [esp + 0x54]
push ecx
push eax
call fcn.005c00a0
add esp, 0x18
jmp 0x509df0
mov ebx, dword [0x64f6a0]
mov dword [esp + 0x14], ebx
mov eax, dword [0x64f6a4]
mov dword [esp + 0xc], eax
push eax
push ebx
push esi
push edi
call fcn.005a13d0
mov dword [esp + 0x10], eax
mov ecx, edx
mov eax, dword [esp + 0x10]
mul ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x10]
mov ebx, eax
imul ebx, dword [esp + 0xc]
add edx, ebx
imul ebx, ecx, 0xf4240
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x14]
imul ecx, ebx
add ecx, edx
sub edi, dword [esp + 8]
sbb esi, ecx
mov ecx, 0xf4240
mul ecx
mov dword [esp + 0x10], eax
add edx, dword [esp + 4]
mov dword [esp + 4], edx
mov eax, edi
mul ecx
imul ecx, esi, 0xf4240
add edx, ecx
push dword [esp + 0xc]
push ebx
push edx
push eax
call fcn.005a13d0
add eax, dword [esp + 0x10]
adc edx, dword [esp + 4]
jmp 0x509b62
mov ebx, dword [0x64f6a0]
mov dword [esp + 0x10], ebx
mov ecx, dword [0x64f6a4]
mov dword [esp + 0xc], ecx
push ecx
push ebx
push esi
push eax
mov dword [esp + 0x18], eax
call fcn.005a13d0
mov dword [esp + 4], eax
mov ecx, edx
mov eax, dword [esp + 4]
mul ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 4]
mov ebx, eax
imul ebx, dword [esp + 0xc]
add edx, ebx
imul ebx, ecx, 0xf4240
mov dword [esp + 0x14], ebx
imul ecx, dword [esp + 0x10]
add ecx, edx
mov ebx, dword [esp + 8]
sub ebx, dword [esp + 0x18]
sbb esi, ecx
mov ecx, 0xf4240
mul ecx
mov dword [esp + 4], eax
add edx, dword [esp + 0x14]
mov dword [esp + 8], edx
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add edx, ecx
push dword [esp + 0xc]
push dword [esp + 0x14]
push edx
push eax
call fcn.005a13d0
add eax, dword [esp + 4]
adc edx, dword [esp + 8]
jmp 0x509c34
int3