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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
mov eax, dword [0x519008]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
mov ebx, dword [0x51e8d4]
push esi
push edi
mov byte [ebx + 0xa4], 0
push ecx
mov ecx, dword [ebx]
call fcn.004f5b20
mov byte [esp + 0x1b], al
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [0x51dbec]
mov edx, dword [esp + 0x4c]
sub edx, dword [0x51dbf0]
push dword [0x51dbe8]
mov ecx, dword [esp + 0x54]
sbb ecx, dword [0x51dbf4]
push ecx
push edx
call fcn.004fce10
mov edi, eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edx
cmp edx, dword [ebx + 0x94]
jb 0x44a015
ja 0x449e9e
cmp edi, dword [ebx + 0x90]
jbe 0x44a015
mov ecx, dword [ebx + 0x84]
xor esi, esi
mov eax, dword [ebx + 4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x449f63
lea esp, [esp]
mov eax, dword [ebx + 0x78]
mov edi, dword [eax + esi*4]
cmp edx, dword [edi + 0x14]
jb 0x449f56
ja 0x449eda
mov eax, dword [esp + 0x1c]
cmp eax, dword [edi + 0x10]
jbe 0x449f56
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax]
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
cmp edx, vtable.rhea::AllocatorSimple_class_rhea::AllocatorTrackingPolicy_simple_.0
jne 0x44a5ce
movzx ecx, byte [edi - 4]
lea edx, [edi - 8]
movzx eax, byte [edx + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 7]
shl ecx, 0x10
or ecx, eax
movzx eax, byte [edx + 6]
shl eax, 8
and ecx, 0x3fffffff
or ecx, eax
mov eax, dword [esp + 0x14]
push edx
dec dword [eax + 0x18]
sub dword [eax + 0x1c], ecx
call fcn.0040beca
add esp, 4
dec dword [ebx + 0x84]
mov eax, dword [ebx + 0x84]
cmp esi, eax
jae 0x449f48
mov ecx, dword [ebx + 0x78]
mov eax, dword [ecx + eax*4]
mov dword [ecx + esi*4], eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
dec ecx
mov dword [esp + 0x20], ecx
dec esi
inc esi
cmp esi, ecx
jb 0x449ec0
mov edi, dword [esp + 0x1c]
mov eax, dword [ebx + 0x68]
xor edx, edx
mov dword [esp + 0x10], eax
test eax, eax
je 0x449fdd
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov esi, dword [ebx + 0x5c]
cmp dword [esi + ecx + 4], 0xffffffff
jne 0x449fc9
sub edi, dword [esi + ecx + 0x18]
mov eax, dword [esp + 0x24]
sbb eax, dword [esi + ecx + 0x1c]
mov dword [esp + 0x44], eax
jne 0x449f9a
cmp edi, 0x3a98
jbe 0x449fc9
dec dword [ebx + 0x68]
mov esi, dword [ebx + 0x68]
cmp edx, esi
jae 0x449fba
mov eax, dword [ebx + 0x5c]
shl esi, 5
add esi, eax
lea edi, [ecx + eax]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
dec edx
sub ecx, 0x20
dec eax
mov dword [esp + 0x10], eax
jmp 0x449fcd
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
inc edx
add ecx, 0x20
mov dword [esp + 0x14], ecx
cmp edx, eax
jb 0x449f76
mov edx, dword [esp + 0x24]
mov ecx, edi
add ecx, 0x2710
mov eax, edx
mov dword [ebx + 0x90], ecx
adc eax, 0
cmp byte [ebx + 0xa3], 2
mov dword [ebx + 0x94], eax
jne 0x44a015
cmp dword [ebx + 0x68], 0
jne 0x44a015
mov byte [ebx + 0xa4], 1
jmp 0x44a4af
cmp edx, dword [ebx + 0x9c]
jb 0x44a040
ja 0x44a027
cmp edi, dword [ebx + 0x98]
jbe 0x44a040
mov ecx, edi
mov eax, edx
add ecx, 0xea60
mov dword [ebx + 0x98], ecx
adc eax, 0
mov dword [ebx + 0x9c], eax
mov eax, dword [ebx + 0x28]
xor esi, esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], esi
test eax, eax
je 0x44a2ce
xor edi, edi
mov dword [esp + 0x14], edi
jmp 0x44a060
mov edx, dword [ebx + 0x1c]
add edx, edi
mov eax, dword [edx]
sub eax, 0
je 0x44a27b
sub eax, 1
je 0x44a182
sub eax, 1
jne 0x44a2b6
mov eax, dword [ebx + 0x10]
push dword [edx + 8]
push str.Transfer__0x_08X__finished_KO_n
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
add esp, 0xc
lea ecx, [ebx + 0x18]
push esi
call fcn.00403260
cmp dword [eax + 0x20], 0
je 0x44a0c9
push esi
lea ecx, [ebx + 0x18]
call fcn.00403260
push dword [eax + 0x20]
call fcn.0040d0b9
add esp, 4
lea ecx, [ebx + 0x18]
push esi
call fcn.00403260
mov dword [eax + 0x20], 0
push esi
lea ecx, [ebx + 0x18]
call fcn.00403260
cmp byte [eax + 4], 0
jne 0x44a148
push esi
lea ecx, [ebx + 0x18]
call fcn.00403260
mov edx, dword [eax + 0x30]
add eax, 0x30
mov dword [esp + 0x40], eax
test edx, edx
je 0x44a148
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x2c], ecx
mov eax, dword [ecx]
cmp eax, vtable.rhea::AllocatorSimple_class_rhea::AllocatorTrackingPolicy_simple_.0
jne 0x44a5db
movzx ecx, byte [edx - 4]
add edx, 0xfffffff8
shl ecx, 8
push edx
movzx eax, byte [edx + 5]
or ecx, eax
movzx eax, byte [edx + 7]
shl ecx, 0x10
or ecx, eax
movzx eax, byte [edx + 6]
shl eax, 8
and ecx, 0x3fffffff
or ecx, eax
mov eax, dword [esp + 0x30]
dec dword [eax + 0x18]
sub dword [eax + 0x1c], ecx
call fcn.0040beca
add esp, 4
mov eax, dword [esp + 0x40]
mov dword [eax], 0
dec dword [ebx + 0x28]
mov edx, dword [ebx + 0x28]
cmp esi, edx
jae 0x44a26c
mov eax, dword [ebx + 0x1c]
mov ecx, 0x10
shl edx, 6
add edi, eax
lea esi, [eax + edx]
mov eax, dword [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
dec esi
sub edi, 0x40
dec eax
mov dword [esp + 0x10], eax
jmp 0x44a2ba
mov eax, dword [ebx + 0x10]
push dword [edx + 8]
push str.Transfer__0x_08X__finished_OK_n
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
add esp, 0xc
lea ecx, [ebx + 0x18]
push esi
call fcn.00403260
cmp dword [eax + 0x20], 0
je 0x44a1c9
push esi
lea ecx, [ebx + 0x18]
call fcn.00403260
push dword [eax + 0x20]
call fcn.0040d0b9
add esp, 4
lea ecx, [ebx + 0x18]
push esi
call fcn.00403260
mov dword [eax + 0x20], 0
push esi
lea ecx, [ebx + 0x18]
call fcn.00403260
cmp byte [eax + 4], 0
jne 0x44a248
push esi
lea ecx, [ebx + 0x18]
call fcn.00403260
mov edx, dword [eax + 0x30]
add eax, 0x30
mov dword [esp + 0x2c], eax
test edx, edx
je 0x44a248
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x40], ecx
mov eax, dword [ecx]
cmp eax, vtable.rhea::AllocatorSimple_class_rhea::AllocatorTrackingPolicy_simple_.0
jne 0x44a5e6
movzx ecx, byte [edx - 4]
add edx, 0xfffffff8
shl ecx, 8
push edx
movzx eax, byte [edx + 5]
or ecx, eax
movzx eax, byte [edx + 7]
shl ecx, 0x10
or ecx, eax
movzx eax, byte [edx + 6]
shl eax, 8
and ecx, 0x3fffffff
or ecx, eax
mov eax, dword [esp + 0x44]
dec dword [eax + 0x18]
sub dword [eax + 0x1c], ecx
call fcn.0040beca
add esp, 4
mov eax, dword [esp + 0x2c]
mov dword [eax], 0
dec dword [ebx + 0x28]
mov edx, dword [ebx + 0x28]
cmp esi, edx
jae 0x44a26c
mov eax, dword [ebx + 0x1c]
mov ecx, 0x10
shl edx, 6
add edi, eax
lea esi, [eax + edx]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
dec esi
sub edi, 0x40
dec eax
mov dword [esp + 0x10], eax
jmp 0x44a2ba
mov eax, dword [esp + 0x24]
cmp eax, dword [edx + 0x14]
jb 0x44a2b6
ja 0x44a28f
mov eax, dword [esp + 0x1c]
cmp eax, dword [edx + 0x10]
jbe 0x44a2b6
push esi
lea ecx, [ebx + 0x18]
call fcn.00403260
mov dword [eax], 2
mov eax, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x10]
push dword [edi + eax + 8]
mov edx, dword [ecx]
push str.Transfer__0x_08X__time_out_n
push ecx
call dword [edx + 0xc]
add esp, 0xc
mov eax, dword [esp + 0x10]
inc esi
add edi, 0x40
mov dword [esp + 0x20], esi
mov dword [esp + 0x14], edi
cmp esi, eax
jb 0x44a060
cmp byte [esp + 0x1b], 0
mov byte [esp + 0x28], 0
jbe 0x44a4af
xor esi, esi
mov dword [esp + 0x14], esi
mov ecx, dword [ebx]
mov edx, dword [esi + ecx + 0x10]
lea eax, [edx - 1]
cmp eax, 0xfd
ja case.0x44a2ff.2
movzx eax, byte [eax + 0x44a61c]
jmp dword [eax*4 + 0x44a60c]
push dword [esp + 0x24]
mov ecx, ebx
push dword [esp + 0x20]
push dword [esp + 0x30]
call fcn.00448060
jmp case.0x44a2ff.100
mov eax, dword [esi + ecx + 0x18]
cmp eax, 0xfffffffe
je 0x44a3df
cmp eax, 0xffffffff
je 0x44a346
mov eax, dword [ebx + 8]
push str.SocketBridgeServer___unkwnown_event_from_waitList_n
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
add esp, 8
jmp case.0x44a2ff.100
lea edx, [esp + 0x54]
lea ecx, [ebx + 0x44]
call fcn.0042da90
test al, al
je case.0x44a2ff.100
lea ebx, [ebx]
lea eax, [esp + 0x54]
mov ecx, ebx
push eax
call fcn.00447ae0
cmp dword [esp + 0x60], 0
jbe 0x44a3c6
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x44a3c6
mov esi, dword [0x519aa0]
mov edx, dword [esi]
cmp edx, vtable.rhea::AllocatorSimple_class_rhea::AllocatorTrackingPolicy_simple_.0
jne 0x44a5f1
movzx ecx, byte [eax - 4]
lea edx, [eax - 8]
movzx eax, byte [edx + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 7]
shl ecx, 0x10
or ecx, eax
movzx eax, byte [edx + 6]
dec dword [esi + 0x18]
and ecx, 0x3fffffff
shl eax, 8
or ecx, eax
sub dword [esi + 0x1c], ecx
push edx
call fcn.0040beca
add esp, 4
lea edx, [esp + 0x54]
lea ecx, [ebx + 0x44]
call fcn.0042da90
test al, al
jne 0x44a360
mov esi, dword [esp + 0x14]
jmp case.0x44a2ff.100
cmp byte [ebx + 0x104], 0
je case.0x44a2ff.100
lea edx, [esp + 0x54]
lea ecx, [ebx + 0x108]
call fcn.0042da90
test al, al
je case.0x44a2ff.100
lea eax, [esp + 0x54]
mov ecx, ebx
push eax
call fcn.00447390
cmp dword [esp + 0x60], 0
jbe 0x44a469
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x44a469
mov esi, dword [0x519aa0]
mov edx, dword [esi]
cmp edx, vtable.rhea::AllocatorSimple_class_rhea::AllocatorTrackingPolicy_simple_.0
jne 0x44a5fe
movzx ecx, byte [eax - 4]
lea edx, [eax - 8]
movzx eax, byte [edx + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 7]
shl ecx, 0x10
or ecx, eax
movzx eax, byte [edx + 6]
dec dword [esi + 0x18]
and ecx, 0x3fffffff
shl eax, 8
or ecx, eax
sub dword [esi + 0x1c], ecx
push edx
call fcn.0040beca
add esp, 4
lea edx, [esp + 0x54]
lea ecx, [ebx + 0x108]
call fcn.0042da90
test al, al
jne 0x44a403
mov esi, dword [esp + 0x14]
jmp case.0x44a2ff.100
mov eax, dword [ebx + 8]
push edx
push str.SocketBridgeServer::run____unknown_event_type:__d_n
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
add esp, 0xc
mov al, byte [esp + 0x28]
add esi, 0xc
inc al
mov dword [esp + 0x14], esi
mov byte [esp + 0x28], al
cmp al, byte [esp + 0x1b]
jb 0x44a2e4
cmp byte [ebx + 0xa4], 0
je 0x449e34
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebx + 4]
lea ecx, [ebx + 0x74]
call fcn.00402ab0
cmp byte [ebx + 0x104], 0
je 0x44a5bc
lea edi, [ebx + 0x108]
mov byte [ebx + 0x104], 0
mov ax, word [edi]
mov ecx, 0xffff
xor edx, edx
cmp ax, cx
jne 0x44a4f8
xor al, al
jmp 0x44a534
movzx edx, byte [edi]
sub edx, dword [0x519ac0]
cmp edx, dword [0x519ab8]
jb 0x44a50f
xor edx, edx
xor al, al
jmp 0x44a534
imul edx, dword [0x519ab4]
mov esi, 0xf3ff
add edx, dword [0x519abc]
mov cx, word [edx + 0x20]
mov ax, word [edi]
and cx, si
and ax, si
cmp cx, ax
sete al
movzx eax, al
neg eax
sbb eax, eax
and eax, edx
je 0x44a544
mov eax, dword [eax + 4]
jmp 0x44a548
mov eax, dword [esp + 0x40]
mov ecx, dword [ebx]
mov dword [esp + 0x40], eax
add ecx, 0x10c
lea eax, [esp + 0x40]
push eax
call fcn.004f4480
lea ecx, [ebx + 0x110]
call fcn.0042e110
mov ebx, eax
test ebx, ebx
je 0x44a5b5
lea esi, [ebx + 8]
mov dword [esp + 0x30], 0x1102
push esi
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx]
lea eax, [esp + 0x30]
push eax
call fcn.00401dc0
push dword [ebx + 4]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, edi
call fcn.0042dce0
mov ecx, dword [esp + 0x64]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret
push 1
push edi
mov ecx, eax
call dword [edx + 0x10]
jmp 0x449f2f
push 0
push edx
call dword [eax + 0x10]
jmp 0x44a13e
push 0
push edx
call dword [eax + 0x10]
jmp 0x44a23e
push 0
push eax
mov ecx, esi
call dword [edx + 0x10]
jmp 0x44a3c6
push 0
push eax
mov ecx, esi
call dword [edx + 0x10]
jmp 0x44a469