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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x450
mov esi, esp
mov eax, dword [0x4f6014]
xor eax, ebp
mov dword [esi + 0x448], eax
mov dword [ecx], 0x4e2aac
lea eax, [ecx + 8]
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
add ecx, 0xc
lea edi, [esi + 0x48]
mov dword [esi + 0x10], ecx
push edi
call fcn.00412ab0
movzx ebx, byte [esi + 0x53]
test bl, bl
jns 0x440ec2
mov ebx, dword [esi + 0x4c]
push dword [esi + 0x48]
call fcn.004a7ee0
add esp, 4
mov dword [esi + 0x20], ebx
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov ecx, dword [eax + 4]
add ecx, edx
push edi
call fcn.0041b09a
mov ecx, edi
push 0x4fb0d8
call fcn.0042e6b8
mov edi, eax
mov eax, dword [eax]
mov ebx, dword [eax + 0x1c]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
push 0xa
call ebx
mov ebx, eax
lea ecx, [esi + 0x48]
call fcn.0041cfee
movsx eax, bl
mov edi, dword [esi + 8]
mov ecx, edi
push eax
call fcn.00412340
mov ecx, edi
call fcn.00411780
mov dword [esi + 0x28], 0xffffffff
mov dword [esi + 0x2c], 0xffffffff
mov dword [esi + 0x30], 0xffffffff
lea eax, [esi + 0x28]
mov ebx, dword [esi + 0x10]
mov ecx, ebx
mov dword [esi + 8], eax
push eax
call fcn.00412ab0
mov ecx, dword [0x4fb7e8]
test ecx, ecx
je 0x440fe6
mov dword [esi + 4], esp
push eax
sub esp, 8
mov edi, esp
cmp byte [esi + 0x33], 0
js 0x440f69
mov eax, dword [esi + 0x30]
mov dword [edi + 8], eax
movsd xmm0, qword [esi + 0x28]
movsd qword [edi], xmm0
jmp 0x440fde
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
cmp eax, 0xa
mov dword [esi + 0x14], ecx
ja 0x440f80
mov byte [edi + 0xb], al
cmp edi, edx
jbe 0x440fc0
jmp 0x440fcf
mov dword [esi + 0x1c], edx
cmp eax, 0x7ffffff0
jae 0x44150e
mov ebx, eax
or ebx, 0xf
inc ebx
push ebx
mov dword [esi + 0x18], eax
call fcn.004a7eb0
add esp, 4
mov dword [edi], eax
or ebx, 0x80000000
mov dword [edi + 8], ebx
mov ecx, dword [esi + 0x18]
mov dword [edi + 4], ecx
mov edi, eax
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 0x1c]
cmp edi, edx
ja 0x440fcf
mov ecx, eax
add eax, edi
inc eax
cmp eax, edx
mov eax, ecx
ja 0x441441
inc eax
push eax
push edx
push edi
call fcn.004aafe0
add esp, 0xc
mov ecx, dword [esi + 0x14]
call fcn.00464900
mov esp, dword [esi + 4]
test byte [0x4f7f44], 0x19
mov edi, dword [esi + 0xc]
jne 0x4413fe
cmp dword [edi + 4], 3
jne 0x4410dc
cmp byte [0x4fb81c], 0
jne 0x4410dc
mov byte [0x4fb81c], 1
mov eax, dword [0x4fb824]
mov ecx, dword [0x4f9e7c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x44145f
mov ecx, ebx
lea ebx, [esi + 0x48]
push ebx
call fcn.00412ab0
cmp byte [esi + 0x53], 0
jns 0x441049
mov ebx, dword [esi + 0x48]
add ebx, dword [edi + 0x90]
mov eax, edi
mov edi, dword [edi + 0x94]
mov eax, dword [eax + 0x98]
test edi, edi
je 0x44107c
push 0x5c
push edi
mov dword [esi + 4], eax
call fcn.004ab7f0
add esp, 8
lea ecx, [eax + 1]
test eax, eax
mov eax, dword [esi + 4]
cmove ecx, edi
jmp 0x44107e
xor ecx, ecx
lea edi, [esi + 0x34]
push ebx
push eax
push ecx
push str._s:_d:__s
push edi
call fcn.0044c1e0
add esp, 0x14
cmp byte [esi + 0x53], 0
jns 0x4410a3
push dword [esi + 0x48]
call fcn.004a7ee0
add esp, 4
movzx eax, byte [esi + 0x3f]
test al, al
jns 0x4410b1
mov edi, dword [esi + 0x34]
mov eax, dword [esi + 0x38]
push eax
push edi
push dword [0x4fb820]
call fcn.00466210
add esp, 0xc
cmp byte [esi + 0x3f], 0
jns 0x4410d2
push dword [esi + 0x34]
call fcn.004a7ee0
add esp, 4
mov byte [0x4fb81c], 0
mov edi, dword [esi + 0xc]
mov ecx, dword [0x4fb7f4]
test ecx, ecx
je 0x44112c
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov ebx, dword [edi + 0x90]
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 0x98]
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0x94]
mov dword [esi + 0x14], eax
call dword [section..00cfg]
lea eax, [esi + 0x28]
push eax
push ebx
mov ebx, dword [esi + 0x10]
push edi
mov edi, dword [esi + 0xc]
push dword [esi + 0x14]
push dword [esi + 4]
call ecx
add esp, 0x14
test al, al
jne 0x44138f
mov eax, dword [0x4f7b50]
test al, 2
je 0x44114f
cmp byte [esi + 0x33], 0
jns 0x441141
mov eax, dword [esi + 0x28]
mov dword [esi + 8], eax
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x4f7b50]
test al, 4
jne 0x44115e
cmp dword [edi + 4], 2
jl 0x4411a7
cmp eax, 1
ja 0x4411a7
movzx ebx, byte [esi + 0x33]
test bl, bl
cmovs ebx, dword [esi + 0x2c]
lea ecx, [esi + 0x28]
cmovs ecx, dword [esi + 0x28]
mov dword [esi + 8], ecx
test ebx, ebx
je 0x4411a7
xor edi, edi
nop dword [eax + eax]
mov eax, ebx
sub eax, edi
mov ecx, dword [esi + 8]
add ecx, edi
push eax
push ecx
push 2
call fcn.004bfb14
add esp, 0xc
test eax, eax
js 0x44119f
add edi, eax
cmp edi, ebx
jb 0x441180
mov eax, dword [0x4f7b50]
mov edi, dword [esi + 0xc]
test al, 1
je 0x4411e0
call fcn.00440740
test al, al
je 0x4411e0
mov dword [esi + 0x48], 0xffffffff
movzx eax, byte [esi + 0x33]
test al, al
cmovs eax, dword [esi + 0x2c]
lea ecx, [esi + 0x28]
cmovs ecx, dword [esi + 0x28]
push 0
lea edx, [esi + 0x48]
push edx
push eax
push ecx
push dword [0x4fb800]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [edi + 4], 3
mov ebx, dword [esi + 0x10]
jne 0x44138f
mov ecx, dword [0x5063f8]
test ecx, ecx
je 0x441211
movzx eax, byte [esi + 0x33]
test al, al
jns 0x441207
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
jmp 0x44120a
lea edx, [esi + 0x28]
push eax
push edx
call fcn.00465ce0
push 0x400
push 0xff
lea eax, [esi + 0x48]
push eax
call fcn.004ab560
add esp, 0xc
cmp byte [esi + 0x33], 0
jns 0x441232
mov eax, dword [esi + 0x28]
jmp 0x441235
lea eax, [esi + 0x28]
push 0x400
push eax
lea ebx, [esi + 0x48]
push ebx
call fcn.0044c020
add esp, 0xc
push ebx
call fcn.00411770
add esp, 4
mov eax, dword [0x4fb818]
mov ecx, dword [0x4f9e7c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4414a2
mov eax, dword [0x4fb810]
cmp eax, dword [0x4fb814]
je 0x441513
mov dword [esi + 0x24], 0xffffffff
mov eax, dword [0x4fb818]
mov ecx, dword [0x4f9e7c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
mov ebx, dword [esi + 0x10]
jg 0x4414d8
mov eax, dword [0x4fb814]
test eax, eax
mov ecx, dword [0x4fb80c]
cmove eax, ecx
dec eax
cmp ecx, eax
jb 0x441516
shl eax, 2
add eax, dword [0x4fb808]
lea ecx, [esi + 0x24]
push eax
call fcn.0043f770
mov eax, dword [esi + 0x24]
test eax, eax
je 0x441387
cmp byte [esi + 0x33], 0
jns 0x4412ee
mov ebx, dword [esi + 0x28]
jmp 0x4412f1
lea ebx, [esi + 0x28]
mov dword [esi + 8], eax
mov dword [esi + 4], ebx
mov edi, dword [esi + 0x20]
add ebx, edi
je 0x441519
push ebx
mov dword [esi + 0x18], ebx
call fcn.004c37d0
add esp, 4
mov edx, dword [esi + 0xc]
mov ecx, dword [edx + 0x90]
sub edi, ecx
mov ebx, dword [esi + 4]
add ebx, ecx
mov ecx, dword [edx + 0x94]
mov dword [esi + 4], ecx
mov ecx, dword [edx + 0x98]
mov dword [esi + 0x14], ecx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], edi
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x40], ecx
mov dword [esi + 0x44], eax
mov eax, 1
mov edi, dword [esi + 8]
lock xadd dword [edi], eax
test eax, eax
jle 0x44151c
mov ebx, dword [esi + 0x24]
mov ecx, dword [ebx + 4]
call dword [section..00cfg]
lea eax, [esi + 0x40]
lea edx, [esi + 0x34]
push eax
push edx
push dword [esi + 0x14]
push dword [esi + 4]
push ebx
call ecx
add esp, 0x14
lock dec dword [edi]
mov ebx, dword [esi + 0x10]
jne 0x441384
push edi
call fcn.0043f6b0
add esp, 4
mov edi, dword [esi + 0xc]
lea ecx, [esi + 0x24]
call fcn.0043f740
cmp byte [esi + 0x33], 0
jns 0x4413a0
push dword [esi + 0x28]
call fcn.004a7ee0
add esp, 4
lea ecx, [edi + 0x9c]
call fcn.004648e0
mov eax, dword [edi + 8]
mov eax, dword [eax + 4]
mov dword [edi + eax + 8], 0x4e3238
mov dword [edi + 0xc], 0x4e3240
cmp byte [edi + 0x37], 0
jns 0x4413d1
push dword [edi + 0x2c]
call fcn.004a7ee0
add esp, 4
add edi, 0x40
mov ecx, ebx
call fcn.004113fe
mov ecx, ebx
call fcn.00411770
mov ecx, edi
call fcn.004113f4
mov ecx, dword [esi + 0x448]
xor ecx, ebp
call fcn.004a8de3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0x34], edi
lea eax, [esi + 0x28]
mov dword [esi + 0x38], eax
mov dword [esi + 0x4c], 0
mov dword [esi + 0x48], 0
sub esp, 8
movsd xmm0, qword [esi + 0x48]
movsd qword [esp], xmm0
lea edx, [esi + 0x34]
mov ecx, str.LogMessage
call fcn.004418a0
add esp, 8
cmp dword [edi + 4], 3
je 0x441000
jmp 0x4410dc
push str.char_traits::copy_overlapped_range
push str.__s2_____s1____s2_____s1__n
push 0xec
push str....._buildtools_third_partylibc_trunkinclude__stringchar_traits.h
push str._s:_d:_assertion__s_failed:__s
call fcn.00416514
push 0x4fb824
call fcn.004a7f57
add esp, 4
cmp dword [0x4fb824], 0xffffffff
jne 0x441035
push 0x400
push str.LOG_FATAL
call fcn.004661d0
add esp, 8
mov dword [0x4fb820], eax
push 0x4fb824
call fcn.004a7fcd
add esp, 4
jmp 0x441035
push 0x4fb818
call fcn.004a7f57
add esp, 4
cmp dword [0x4fb818], 0xffffffff
jne 0x441271
xorps xmm0, xmm0
movups xmmword [0x4fb808], xmm0
push 0x4fb818
call fcn.004a7fcd
add esp, 4
jmp 0x441271
push 0x4fb818
call fcn.004a7f57
add esp, 4
cmp dword [0x4fb818], 0xffffffff
jne 0x4412ad
xorps xmm0, xmm0
movups xmmword [0x4fb808], xmm0
push 0x4fb818
call fcn.004a7fcd
add esp, 4
jmp 0x4412ad
call fcn.004bc880
int3
int3
int3
int3