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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x58
mov esi, esp
mov dword [esi + 0x40], ebp
mov dword [esi + 0x44], esp
mov dword [esi + 0x50], 0xffffffff
mov dword [esi + 0x4c], 0x539dd0
mov ebx, ecx
lea eax, [esi + 0x48]
mov ecx, dword fs:[0]
mov dword [esi + 0x48], ecx
mov dword fs:[0], eax
cmp dword [edx + 0x70], 0x3b9aca00
je 0x528a26
lea eax, [edx + 0x30]
mov cl, 1
mov edi, edx
mov dword [esi + 0x18], eax
xor eax, eax
lock cmpxchg byte [edx + 0x30], cl
jne 0x5289eb
mov dword [esi + 0x14], ebx
movzx eax, byte [edi + 0x60]
test al, al
jne 0x528a02
lea edx, [edi + 0x40]
lea ecx, [esi + 0x20]
mov dword [esi + 0xc], edi
mov byte [esi + 7], 1
mov dword [esi + 0x50], 0
call fcn.005290e0
mov ebx, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov eax, ebx
mov dword [esi + 8], ecx
mov dword [esi + 0x10], edx
mov dword [esi + 0x3c], edi
or eax, ecx
je 0x5286e7
cmp edi, 1
mov ecx, edi
mov eax, 1
adc ecx, 0
test edx, edx
cmovne eax, edi
cmove eax, ecx
mov ecx, edx
jmp 0x5286eb
xor eax, eax
xor ecx, ecx
mov edx, dword [esi + 0xc]
mov dword [edx + 0x38], eax
mov dword [edx + 0x3c], ecx
xor ecx, ecx
mov al, 1
lock cmpxchg byte [edx + 0x30], cl
je 0x528711
mov ecx, dword [esi + 0x18]
mov byte [esi + 7], 0
mov dword [esi + 0x1c], ebx
call fcn.0053dda0
mov ebx, dword [esi + 0x1c]
mov eax, dword [ebp + 0x10]
or ebx, dword [esi + 8]
je 0x52882c
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x68]
mov dword [esi + 0x1c], eax
mov eax, dword [ecx + 0x6c]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x70]
mov byte [esi + 7], 0
mov dword [esi + 0x38], eax
call fcn.00529470
mov dword [esi + 0x24], edx
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x20], eax
mov dword [esi + 0x28], ecx
lea ecx, [esi + 0x20]
mov byte [esi + 7], 0
push dword [esi + 0x38]
push dword [esi + 8]
call fcn.00511a50
add esp, 8
mov dword [esi + 8], eax
mov ebx, edx
mov edx, 0x431bde83
mov eax, ecx
mul edx
mov eax, dword [esi + 8]
mov edi, edx
xor edx, edx
shr edi, 0x12
cmp ecx, 0x3b9aca00
mov ecx, 0x3e8
cmove ebx, edx
cmove edi, edx
cmove eax, edx
mul ecx
mov dword [esi + 8], edx
mov ecx, eax
mov eax, ebx
mov edx, 0x3e8
mul edx
add eax, dword [esi + 8]
mov dword [esi + 8], 0
adc edx, 0
add ecx, edi
mov edi, dword [esi + 0x3c]
adc eax, 0
adc edx, 0
setb bl
cmp edx, 1
movzx edx, bl
mov ebx, dword [esi + 0x10]
sbb edx, 0
mov edx, 0xffffffff
cmovb edx, eax
mov eax, 0xfffffffd
cmovb eax, ecx
sub edi, eax
mov eax, 0
sbb ebx, edx
cmovb ebx, eax
cmovb edi, eax
push 0
push 0x3e8
push ebx
push edi
call fcn.0053a370
mov dword [esi + 0x10], edx
imul edx, eax, 0x3e8
mov ecx, edi
sub ecx, edx
mov edx, 0x3e7
cmp edx, edi
sbb dword [esi + 8], ebx
jb 0x528859
test ecx, ecx
jne 0x528859
mov ecx, dword [esi + 0x14]
cmp dword [ecx], 0x80000000
jne 0x5288d9
mov ecx, dword [ecx + 4]
xor edx, edx
mov eax, 2
lock cmpxchg dword [ecx + 8], edx
jmp 0x528921
mov edx, dword [esi + 0xc]
cmp eax, 0x3b9aca00
jne 0x528870
mov ecx, dword [esi + 0x14]
cmp dword [ecx], 0x80000000
jne 0x5288fd
mov ecx, dword [ecx + 4]
mov byte [esi + 7], 0
add ecx, 8
call fcn.00527840
jmp 0x528921
imul ecx, ecx, 0xf4240
cmp dword [ebp + 0x10], 0x3b9aca00
mov dword [esi + 8], ecx
jne 0x52888b
mov edi, dword [esi + 0x10]
jmp 0x5288c0
mov ecx, dword [esi + 0x14]
mov byte [esi + 7], 0
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00529640
add esp, 0xc
jmp 0x528921
mov edx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov edi, dword [esi + 0x10]
cmp edx, eax
mov ecx, ebx
sbb ecx, edi
jb 0x5288b6
mov ecx, eax
mov edi, edi
xor ecx, edx
xor edi, ebx
or edi, ecx
jne 0x52886b
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 8]
mov edi, dword [esi + 0x10]
cmp ecx, dword [ebp + 0x10]
jb 0x5288c0
mov ecx, dword [ebp + 0x10]
mov eax, edx
mov edi, ebx
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0xc]
mov byte [esi + 7], 0
push dword [esi + 8]
push edi
push eax
call fcn.00529640
add esp, 0xc
jmp 0x528921
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x78], 0
je 0x528a3a
lea edx, [eax + 0x78]
mov byte [esi + 7], 0
push 0
push 0
push 0
call fcn.00528ab0
add esp, 0xc
jmp 0x528921
cmp dword [edx + 0x78], 0
je 0x528a57
add edx, 0x78
mov byte [esi + 7], 0
sub esp, 0xc
mov dword [esp + 8], 0x3b9aca00
call fcn.00528ab0
add esp, 0xc
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x68]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x6c]
mov dword [esi + 0x14], eax
mov eax, dword [ecx + 0x70]
mov byte [esi + 7], 0
mov dword [esi + 0x10], eax
call fcn.00529470
mov dword [esi + 0x24], edx
mov edx, dword [esi + 8]
mov dword [esi + 0x20], eax
mov dword [esi + 0x28], ecx
lea ecx, [esi + 0x20]
mov byte [esi + 7], 0
push dword [esi + 0x10]
push dword [esi + 0x14]
call fcn.00511a50
add esp, 8
mov dword [esi + 0xc], edx
mov edi, ecx
mov ebx, eax
mov ecx, 0x431bde83
mov byte [esi + 7], 0
mov eax, edi
mul ecx
mov ecx, edx
xor eax, eax
mov edx, 0x3e8
shr ecx, 0x12
cmp edi, 0x3b9aca00
mov edi, dword [esi + 0xc]
cmove ebx, eax
cmove ecx, eax
cmove edi, eax
mov eax, ebx
mul edx
mov dword [esi + 0xc], edx
mov ebx, eax
mov eax, edi
mov edx, 0x3e8
mov edi, 0xffffffff
mul edx
add eax, dword [esi + 0xc]
adc edx, 0
add ebx, ecx
adc eax, 0
adc edx, 0
setb cl
cmp edx, 1
mov edx, 0xfffffffd
movzx ecx, cl
sbb ecx, 0
mov ecx, dword [esi + 0x18]
cmovb edi, eax
cmovb edx, ebx
push edi
call fcn.00529900
add esp, 4
mov eax, dword [esi + 0x48]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esi + 0x18]
call fcn.0053e0c0
mov dword [esi + 0x14], ebx
movzx eax, byte [edi + 0x60]
test al, al
je 0x52869a
mov byte [esi + 7], 1
mov dword [esi + 0x50], 0
mov ecx, 0x5a7b60
mov edx, 0x27
push 0x5a7b88
call fcn.0053bbd0
add esp, 4
jmp 0x528a72
mov ecx, 0x5a6e00
mov edx, 0x73
push 0x5a7b50
call fcn.0053bf30
mov byte [esi + 7], 0
mov ecx, str.A_Tokio_1.x_context_was_found__but_IO_is_disabled._Call__enable_io__on_the_runtime_builder_to_enable_IO.A_Tokio_1.x_context_was_found__but_timers_are_disabled._Call__enable_time__on_the_runtime_builder_to_enable_timers.Oh_no__We_never_placed_the_Core_back__this_is_a_bug_
mov edx, 0x68
push 0x5a7748
call fcn.0053bf30
add esp, 4
jmp 0x528a72
mov byte [esi + 7], 0
mov ecx, str.A_Tokio_1.x_context_was_found__but_IO_is_disabled._Call__enable_io__on_the_runtime_builder_to_enable_IO.A_Tokio_1.x_context_was_found__but_timers_are_disabled._Call__enable_time__on_the_runtime_builder_to_enable_timers.Oh_no__We_never_placed_the_Core_back__this_is_a_bug_
mov edx, 0x68
push 0x5a7738
call fcn.0053bf30
add esp, 4
ud2