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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x38
mov eax, dword [0x646040]
xor eax, ebp
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x18]
or eax, dword [ecx + 0x1c]
je 0x4383e1
mov esi, ecx
mov eax, dword [ecx + 0x20]
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x1c], ecx
mov ebx, dword [eax + 0x3c]
mov ecx, dword [0x648080]
cmp ecx, 0x5531a0
jne 0x4383f4
mov dword [esp + 0x10], ebx
xor eax, eax
lea ebx, [esp + 0x28]
mov dword [ebx + 4], eax
mov dword [ebx], eax
push ebx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edi, dword [ebx]
mov ebx, dword [ebx + 4]
mov eax, 0x7bd05af6
cmp eax, edi
mov eax, 0x863
sbb eax, ebx
jl 0x4384c4
mov ecx, 0xf4240
mov eax, edi
mul ecx
imul ecx, ebx, 0xf4240
add ecx, edx
push dword [0x64b6cc]
push dword [0x64b6c8]
push ecx
push eax
call fcn.005877d0
mov ebx, dword [esp + 0x10]
sub eax, dword [esi + 0x18]
sbb edx, dword [esi + 0x1c]
seto cl
mov edi, edx
sar edi, 0x1f
test cl, cl
cmovne eax, edi
add edi, 0x80000000
test cl, cl
cmove edi, edx
cmp eax, dword [esp + 0x1c]
sbb edi, ebx
jge 0x43840b
mov ecx, dword [esp + 0x30]
xor ecx, ebp
call fcn.00567335
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call dword [0x6401dc]
lea edi, [esp + 0x20]
push edi
call ecx
add esp, 4
mov eax, dword [edi]
mov edx, dword [edi + 4]
jmp 0x4383bb
cmp byte [esi + 0x29], 0
jne 0x43844c
mov eax, dword [esi + 0x20]
mov ecx, dword [eax + 0x5c]
mov edx, dword [eax + 0xa0]
inc edx
mov dword [eax + 0xa0], edx
cmp ecx, dword [eax + 0x60]
je 0x438431
cmp dword [eax + 0xa8], edx
jae 0x4384a1
mov word [eax + 0x78], 0
mov eax, dword [esi + 0x18]
or eax, dword [esi + 0x1c]
je 0x43844c
mov byte [esi + 0x29], 1
mov eax, dword [esi + 0x20]
dec dword [eax + 0xb0]
cmp byte [esi + 0x11], 0
je 0x4384b5
cmp byte [esi + 0x10], 0
jne 0x4383e1
cmp byte [esi + 0x2a], 0
jne 0x4383e1
mov eax, dword [esi + 0x20]
inc dword [eax + 0xa4]
mov ecx, dword [eax + 0x5c]
cmp ecx, dword [eax + 0x60]
je 0x43847d
mov edx, dword [eax + 0xa8]
cmp edx, dword [eax + 0xa0]
jae 0x4384ab
mov word [eax + 0x78], 0
mov eax, dword [esi + 0x18]
or eax, dword [esi + 0x1c]
je 0x4383e1
mov byte [esi + 0x2a], 1
mov eax, dword [esi + 0x20]
dec dword [eax + 0xb4]
jmp 0x4383e1
movzx ecx, word [ecx + 8]
mov word [eax + 0x78], cx
jmp 0x438437
movzx ecx, word [ecx + 8]
mov word [eax + 0x78], cx
jmp 0x438483
push str....._third_partylibc_srcincludeoptional:795:_assertion_this__has_value___failed:_optional_operator_called_on_a_disengaged_value_n
push 0x624e92
call fcn.005912b0
mov eax, dword [0x64b6c8]
mov dword [esp + 8], eax
mov ecx, dword [0x64b6cc]
mov dword [esp + 0xc], ecx
push ecx
push eax
push ebx
push edi
call fcn.005877d0
mov dword [esp], eax
mov dword [esp + 0x14], edx
mul dword [esp + 8]
mov dword [esp + 0x18], eax
mov ecx, dword [esp]
imul ecx, dword [esp + 0xc]
add edx, ecx
mov eax, dword [esp + 0x14]
imul ecx, eax, 0xf4240
mov dword [esp + 4], ecx
imul eax, dword [esp + 8]
add eax, edx
sub edi, dword [esp + 0x18]
sbb ebx, eax
mov ecx, 0xf4240
mov eax, dword [esp]
mul ecx
mov dword [esp], eax
add edx, dword [esp + 4]
mov dword [esp + 4], edx
mov eax, edi
mul ecx
imul ecx, ebx, 0xf4240
add edx, ecx
push dword [esp + 0xc]
push dword [esp + 0xc]
push edx
push eax
call fcn.005877d0
add eax, dword [esp]
adc edx, dword [esp + 4]
jmp 0x4383b7