Function at 0x44f510
Capabilities:
Print debug messages
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x828
mov esi, ecx
mov eax, dword [0x5a8564]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ecx], 0x569040
add ecx, 0xc
lea eax, [ebp - 0x7fc]
mov dword [ebp - 0x834], ecx
push eax
call fcn.0040f810
movzx eax, byte [ebp - 0x7f1]
mov dword [ebp - 0x828], eax
test al, al
jns 0x44f56e
mov eax, dword [ebp - 0x7f8]
mov dword [ebp - 0x828], eax
push dword [ebp - 0x7fc]
call fcn.005327b0
add esp, 4
lea ebx, [esi + 8]
cmp dword [esi + 4], 3
mov dword [ebp - 0x82c], esi
jne 0x44f731
call fcn.0048dca0
test al, al
jne 0x44f731
lea edi, [ebp - 0x3fc]
push 0x3ec
push 0xff
push edi
call fcn.00536680
add esp, 0xc
mov ecx, edi
call fcn.0048dcb0
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
add ecx, ebx
lea edi, [ebp - 0x7fc]
push edi
call fcn.0040db5a
mov ecx, edi
push 0x5a9e3c
call fcn.00422a98
mov edi, eax
mov eax, dword [eax]
mov dword [ebp - 0x824], ebx
mov ebx, dword [eax + 0x1c]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
push 0xa
call ebx
mov ebx, eax
lea edi, [ebp - 0x7fc]
mov ecx, edi
call fcn.00411b92
movsx eax, bl
mov ebx, dword [ebp - 0x824]
mov ecx, ebx
push eax
call fcn.0040f0f0
mov ecx, ebx
call fcn.0040e140
lea ecx, [ebp - 0x3fc]
push ebx
call fcn.0048dd10
push 0x3f8
push 0xff
push edi
call fcn.00536680
add esp, 0xc
mov ecx, edi
call fcn.0048dd50
mov ecx, edi
call fcn.0048de10
test al, al
jne 0x44f64c
lea ecx, [ebp - 0x7fc]
push ebx
call fcn.0048de20
call fcn.0048df40
test eax, eax
je 0x44f728
mov edi, eax
cmp dword [eax + 0x44], 0
je 0x44f728
push 0x1d
push str.IPC_message_handler_context:
push ebx
call fcn.0040218b
add esp, 0xc
mov ebx, eax
lea esi, [ebp - 0x818]
push dword [edi + 0x44]
push str.0x_08X
push esi
call fcn.00443150
add esp, 0xc
movzx eax, byte [ebp - 0x80d]
test al, al
jns 0x44f6a5
mov eax, dword [ebp - 0x814]
mov esi, dword [ebp - 0x818]
push eax
push esi
push ebx
call fcn.0040218b
add esp, 0xc
mov esi, eax
mov eax, dword [eax]
mov ecx, dword [eax + 4]
add ecx, esi
lea edi, [ebp - 0x804]
push edi
call fcn.0040db5a
mov ecx, edi
push 0x5a9e3c
call fcn.00422a98
mov ebx, eax
mov eax, dword [eax]
mov edi, dword [eax + 0x1c]
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
push 0xa
call edi
mov ebx, eax
lea ecx, [ebp - 0x804]
call fcn.00411b92
movsx eax, bl
mov ecx, esi
push eax
call fcn.0040f0f0
mov ecx, esi
call fcn.0040e140
cmp byte [ebp - 0x80d], 0
jns 0x44f71c
push dword [ebp - 0x818]
call fcn.005327b0
add esp, 4
mov esi, dword [ebp - 0x82c]
mov ebx, dword [ebp - 0x824]
push ebx
call fcn.0043d6c0
add esp, 4
mov eax, dword [esi + 8]
mov ecx, dword [eax + 4]
add ecx, ebx
lea esi, [ebp - 0x7fc]
push esi
call fcn.0040db5a
mov ecx, esi
push 0x5a9e3c
call fcn.00422a98
mov edi, eax
mov eax, dword [eax]
mov esi, ebx
mov ebx, dword [eax + 0x1c]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
push 0xa
call ebx
mov ebx, eax
lea ecx, [ebp - 0x7fc]
mov edi, dword [ebp - 0x82c]
call fcn.00411b92
movsx eax, bl
mov ecx, esi
push eax
call fcn.0040f0f0
mov ecx, esi
mov esi, edi
call fcn.0040e140
mov dword [ebp - 0x818], 0xffffffff
mov dword [ebp - 0x814], 0xffffffff
mov dword [ebp - 0x810], 0xffffffff
lea edi, [ebp - 0x818]
mov ecx, dword [ebp - 0x834]
push edi
call fcn.0040f810
movzx eax, byte [ebp - 0x80d]
test al, al
mov ecx, dword [ebp - 0x818]
mov dword [ebp - 0x824], edi
cmovns ecx, edi
mov dword [ebp - 0x820], ecx
cmovs eax, dword [ebp - 0x814]
mov dword [ebp - 0x81c], eax
lea edi, [ebp - 0x804]
lea ecx, [ebp - 0x820]
push 0xffffffffffffffff
push dword [esi + 0x90]
push edi
call fcn.0040af58
lea ecx, [ebp - 0x3fc]
push edi
call fcn.0040a54e
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x98]
mov dword [ebp - 0x808], ecx
mov dword [ebp - 0x80c], eax
test byte [0x5a67f0], 0x19
jne 0x44f845
cmp byte [ebp - 0x3f1], 0
js 0x44f88a
cmp dword [esi + 4], 3
je 0x44f8a2
jmp 0x44f9be
lea eax, [ebp - 0x80c]
mov dword [ebp - 0x7fc], eax
lea eax, [ebp - 0x808]
mov dword [ebp - 0x7f8], eax
lea eax, [ebp - 0x3fc]
mov dword [ebp - 0x7f4], eax
mov ecx, str.LogMessage
xor edx, edx
lea eax, [ebp - 0x7fc]
push eax
push 0
call fcn.00450350
add esp, 8
cmp byte [ebp - 0x3f1], 0
jns 0x44f83a
push dword [ebp - 0x3fc]
call fcn.005327b0
add esp, 4
cmp dword [esi + 4], 3
jne 0x44f9be
cmp byte [0x5aa92d], 0
jne 0x44f9be
mov dword [ebp - 0x800], 0xffffffff
mov dword [ebp - 0x804], 0x5aa92d
movzx eax, byte [0x5aa92d]
mov byte [0x5aa92d], 1
mov byte [ebp - 0x800], al
cmp byte [0x5aa934], 0
je 0x44fe2f
mov ecx, dword [ebp - 0x834]
lea ebx, [ebp - 0x7fc]
push ebx
call fcn.0040f810
cmp byte [ebp - 0x7f1], 0
jns 0x44f905
mov ebx, dword [ebp - 0x7fc]
add ebx, dword [esi + 0x90]
mov edi, dword [esi + 0x94]
mov esi, dword [esi + 0x98]
test edi, edi
je 0x44f930
push 0x5c
push edi
call fcn.00536910
add esp, 8
lea ecx, [eax + 1]
test eax, eax
cmove ecx, edi
jmp 0x44f932
xor ecx, ecx
push ebx
push esi
push ecx
push str._s:_d:__s
lea esi, [ebp - 0x3fc]
push esi
call fcn.00443150
add esp, 0x14
cmp byte [ebp - 0x7f1], 0
jns 0x44f960
push dword [ebp - 0x7fc]
call fcn.005327b0
add esp, 4
movzx eax, byte [ebp - 0x3f1]
mov ecx, esi
test al, al
mov esi, dword [ebp - 0x82c]
jns 0x44f97f
mov ecx, dword [ebp - 0x3fc]
mov eax, dword [ebp - 0x3f8]
push eax
push ecx
push dword [0x5aa930]
call fcn.0043d680
add esp, 0xc
cmp byte [ebp - 0x3f1], 0
jns 0x44f9a6
push dword [ebp - 0x3fc]
call fcn.005327b0
add esp, 4
cmp dword [ebp - 0x804], 0
je 0x44f9be
movzx eax, byte [ebp - 0x800]
mov ecx, dword [ebp - 0x804]
mov byte [ecx], al
mov ecx, dword [0x5aa904]
test ecx, ecx
je 0x44fa12
mov eax, dword [esi + 4]
mov dword [ebp - 0x830], eax
mov edi, dword [esi + 0x90]
mov ebx, dword [esi + 0x98]
mov eax, dword [ebp - 0x82c]
mov esi, dword [eax + 0x94]
call dword [section..00cfg]
lea eax, [ebp - 0x818]
push eax
push edi
push ebx
push esi
mov esi, dword [ebp - 0x82c]
push dword [ebp - 0x830]
call ecx
add esp, 0x14
test al, al
jne 0x44fd53
cmp byte [ebp - 0x80d], 0
jns 0x44fa27
mov eax, dword [ebp - 0x818]
mov dword [ebp - 0x824], eax
push dword [ebp - 0x824]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x5a74a8]
test al, 2
je 0x44fa5f
cmp byte [ebp - 0x80d], 0
jns 0x44fa4d
mov eax, dword [ebp - 0x818]
jmp 0x44fa53
lea eax, [ebp - 0x818]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x5a74a8]
test al, 4
jne 0x44fa6e
cmp dword [esi + 4], 2
jl 0x44fac8
cmp eax, 1
ja 0x44fac8
movzx ebx, byte [ebp - 0x80d]
test bl, bl
cmovs ebx, dword [ebp - 0x814]
lea edi, [ebp - 0x818]
cmovs edi, dword [ebp - 0x818]
test ebx, ebx
je 0x44fac8
xor esi, esi
nop word cs:[eax + eax]
mov eax, ebx
sub eax, esi
lea ecx, [edi + esi]
push eax
push ecx
push 2
call fcn.00548e76
add esp, 0xc
test eax, eax
js 0x44fabd
add esi, eax
cmp esi, ebx
jb 0x44faa0
mov eax, dword [0x5a74a8]
mov esi, dword [ebp - 0x82c]
test al, 1
je 0x44fb13
call fcn.0044ed10
test al, al
je 0x44fb13
mov dword [ebp - 0x7fc], 0xffffffff
movzx eax, byte [ebp - 0x80d]
test al, al
cmovs eax, dword [ebp - 0x814]
lea ecx, [ebp - 0x818]
cmovs ecx, dword [ebp - 0x818]
push 0
lea edx, [ebp - 0x7fc]
push edx
push eax
push ecx
push dword [0x5aa910]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [esi + 4], 3
jne 0x44fd53
push 0x400
push 0xff
lea eax, [ebp - 0x7fc]
push eax
call fcn.00536680
add esp, 0xc
cmp byte [ebp - 0x80d], 0
jns 0x44fb49
mov edi, esi
mov eax, dword [ebp - 0x818]
jmp 0x44fb51
mov edi, esi
lea eax, [ebp - 0x818]
push 0x400
push eax
lea esi, [ebp - 0x7fc]
push esi
call fcn.00444330
add esp, 0xc
push esi
call fcn.00403610
add esp, 4
cmp byte [0x5aa92c], 0
je 0x44fe52
mov eax, dword [0x5aa924]
cmp dword [0x5aa920], eax
je 0x44fe83
mov dword [ebp - 0x808], 0xffffffff
cmp byte [0x5aa92c], 0
mov esi, edi
je 0x44fe68
mov dword [ebp - 0x3fc], 0x5aa918
mov dword [ebp - 0x3f8], eax
test eax, eax
jne 0x44fbc3
mov eax, dword [ebp - 0x3fc]
mov eax, dword [eax + 4]
dec eax
mov dword [ebp - 0x3f8], eax
mov ecx, dword [ebp - 0x3fc]
push eax
call fcn.004512d0
lea ecx, [ebp - 0x808]
push eax
call fcn.004529b0
cmp dword [ebp - 0x808], 0
je 0x44fd48
movzx eax, byte [ebp - 0x80d]
test al, al
mov ecx, dword [ebp - 0x818]
lea ebx, [ebp - 0x818]
mov edi, ebx
cmovs edi, ecx
add edi, dword [ebp - 0x828]
je 0x44fc35
push edi
mov byte [ebp - 0x824], al
mov dword [ebp - 0x830], ecx
call fcn.0054c390
mov edx, dword [ebp - 0x830]
movzx ecx, byte [ebp - 0x824]
add esp, 4
jmp 0x44fc88
push 0x86
push str....._base_strings_string_piece.h
push str.BasicStringPiece
lea eax, [ebp - 0x3fc]
push eax
call fcn.00451690
add esp, 0x10
lea eax, [ebp - 0x3fc]
push eax
push 0x561302
lea eax, [ebp - 0x804]
push eax
call fcn.00458b50
add esp, 0xc
lea ecx, [ebp - 0x804]
call fcn.00458cb0
movzx ecx, byte [ebp - 0x80d]
xor eax, eax
mov edx, dword [ebp - 0x818]
test cl, cl
cmovs ebx, edx
mov edx, dword [esi + 0x90]
add ebx, edx
mov ecx, dword [ebp - 0x828]
sub ecx, edx
mov edx, ecx
js 0x44fdce
mov ecx, dword [esi + 0x94]
mov dword [ebp - 0x824], ecx
mov ecx, dword [esi + 0x98]
mov dword [ebp - 0x828], ecx
mov dword [ebp - 0x3fc], ebx
mov dword [ebp - 0x3f8], edx
mov dword [ebp - 0x804], edi
mov dword [ebp - 0x800], eax
mov eax, dword [ebp - 0x808]
mov dword [ebp - 0x820], eax
test eax, eax
je 0x44fcf0
mov ecx, dword [ebp - 0x820]
call fcn.0040a2bc
mov eax, dword [ebp - 0x808]
mov ecx, dword [eax + 4]
mov esi, dword [ebp - 0x820]
call dword [section..00cfg]
lea eax, [ebp - 0x804]
push eax
lea eax, [ebp - 0x3fc]
push eax
push dword [ebp - 0x828]
push dword [ebp - 0x824]
push esi
call ecx
add esp, 0x14
cmp dword [ebp - 0x820], 0
je 0x44fd42
mov eax, dword [ebp - 0x820]
lock dec dword [eax]
jne 0x44fd42
push eax
call fcn.00452860
add esp, 4
mov esi, dword [ebp - 0x82c]
lea ecx, [ebp - 0x808]
call fcn.004529d0
cmp byte [ebp - 0x80d], 0
jns 0x44fd6a
push dword [ebp - 0x818]
call fcn.005327b0
add esp, 4
lea ecx, [esi + 0x9c]
call fcn.00481ff0
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
mov dword [esi + eax + 8], vtable.std::__Cr::basic_ostringstream_char__struct_std::__Cr::char_traits_char___class_std::__Cr::allocator_char__.0
mov dword [esi + 0xc], vtable.std::__Cr::basic_stringbuf_char__struct_std::__Cr::char_traits_char___class_std::__Cr::allocator_char__.0
cmp byte [esi + 0x37], 0
jns 0x44fd9b
push dword [esi + 0x2c]
call fcn.005327b0
add esp, 4
add esi, 0x40
mov edi, dword [ebp - 0x834]
mov ecx, edi
call fcn.0040de46
mov ecx, edi
call fcn.00403610
mov ecx, esi
call fcn.0040de3c
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005327f1
add esp, 0x828
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x80
push str....._base_strings_string_piece.h
push str.BasicStringPiece
lea ecx, [ebp - 0x3fc]
push ecx
mov dword [ebp - 0x828], edx
mov dword [ebp - 0x824], eax
call fcn.00451690
add esp, 0x10
lea eax, [ebp - 0x3fc]
push eax
push str.length____size_tPTRDIFF_MAX
lea eax, [ebp - 0x804]
push eax
call fcn.00458b50
add esp, 0xc
lea ecx, [ebp - 0x804]
call fcn.00458cb0
mov eax, dword [ebp - 0x824]
mov edx, dword [ebp - 0x828]
jmp 0x44fca5
mov byte [0x5aa934], 1
push 0x400
push str.LOG_FATAL
call fcn.0043d640
add esp, 8
mov dword [0x5aa930], eax
jmp 0x44f8e4
mov byte [0x5aa92c], 1
mov ecx, 0x5aa918
call fcn.004502e0
jmp 0x44fb7c
mov byte [0x5aa92c], 1
mov ecx, 0x5aa918
call fcn.004502e0
mov eax, dword [0x5aa924]
jmp 0x44fba6
int3