Function at 0x437af0
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 [0x4ad014]
xor eax, ebp
mov dword [esi + 0x448], eax
mov dword [ecx], 0x49efac
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.00411ad0
movzx ebx, byte [esi + 0x53]
test bl, bl
jns 0x437b42
mov ebx, dword [esi + 0x4c]
push dword [esi + 0x48]
call fcn.0046f880
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.0041768a
mov ecx, edi
push 0x4b1ef8
call fcn.0042ad48
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.004195de
movsx eax, bl
mov edi, dword [esi + 8]
mov ecx, edi
push eax
call fcn.00411360
mov ecx, edi
call fcn.004107a0
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.00411ad0
mov ecx, dword [0x4b25f8]
test ecx, ecx
je 0x437c66
mov dword [esi + 4], esp
push eax
sub esp, 8
mov edi, esp
cmp byte [esi + 0x33], 0
js 0x437be9
mov eax, dword [esi + 0x30]
mov dword [edi + 8], eax
movsd xmm0, qword [esi + 0x28]
movsd qword [edi], xmm0
jmp 0x437c5e
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
cmp eax, 0xa
mov dword [esi + 0x14], ecx
ja 0x437c00
mov byte [edi + 0xb], al
cmp edi, edx
jbe 0x437c40
jmp 0x437c4f
mov dword [esi + 0x1c], edx
cmp eax, 0x7ffffff0
jae 0x43818e
mov ebx, eax
or ebx, 0xf
inc ebx
push ebx
mov dword [esi + 0x18], eax
call fcn.0046f850
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 0x437c4f
mov ecx, eax
add eax, edi
inc eax
cmp eax, edx
mov eax, ecx
ja 0x4380c1
inc eax
push eax
push edx
push edi
call fcn.00472850
add esp, 0xc
mov ecx, dword [esi + 0x14]
call fcn.0043e5d0
mov esp, dword [esi + 4]
test byte [0x4aef2c], 0x19
mov edi, dword [esi + 0xc]
jne 0x43807e
cmp dword [edi + 4], 3
jne 0x437d5c
cmp byte [0x4b262c], 0
jne 0x437d5c
mov byte [0x4b262c], 1
mov eax, dword [0x4b2634]
mov ecx, dword [0x4b0cc8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4380df
mov ecx, ebx
lea ebx, [esi + 0x48]
push ebx
call fcn.00411ad0
cmp byte [esi + 0x53], 0
jns 0x437cc9
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 0x437cfc
push 0x5c
push edi
mov dword [esi + 4], eax
call fcn.00473060
add esp, 8
lea ecx, [eax + 1]
test eax, eax
mov eax, dword [esi + 4]
cmove ecx, edi
jmp 0x437cfe
xor ecx, ecx
lea edi, [esi + 0x34]
push ebx
push eax
push ecx
push str._s:_d:__s
push edi
call fcn.004416d0
add esp, 0x14
cmp byte [esi + 0x53], 0
jns 0x437d23
push dword [esi + 0x48]
call fcn.0046f880
add esp, 4
movzx eax, byte [esi + 0x3f]
test al, al
jns 0x437d31
mov edi, dword [esi + 0x34]
mov eax, dword [esi + 0x38]
push eax
push edi
push dword [0x4b2630]
call fcn.00441a10
add esp, 0xc
cmp byte [esi + 0x3f], 0
jns 0x437d52
push dword [esi + 0x34]
call fcn.0046f880
add esp, 4
mov byte [0x4b262c], 0
mov edi, dword [esi + 0xc]
mov ecx, dword [0x4b2604]
test ecx, ecx
je 0x437dac
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 0x43800f
mov eax, dword [0x4aeb30]
test al, 2
je 0x437dcf
cmp byte [esi + 0x33], 0
jns 0x437dc1
mov eax, dword [esi + 0x28]
mov dword [esi + 8], eax
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x4aeb30]
test al, 4
jne 0x437dde
cmp dword [edi + 4], 2
jl 0x437e27
cmp eax, 1
ja 0x437e27
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 0x437e27
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.00481f3c
add esp, 0xc
test eax, eax
js 0x437e1f
add edi, eax
cmp edi, ebx
jb 0x437e00
mov eax, dword [0x4aeb30]
mov edi, dword [esi + 0xc]
test al, 1
je 0x437e60
call fcn.004373f0
test al, al
je 0x437e60
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 [0x4b2610]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [edi + 4], 3
mov ebx, dword [esi + 0x10]
jne 0x43800f
mov ecx, dword [0x4b264c]
test ecx, ecx
je 0x437e91
movzx eax, byte [esi + 0x33]
test al, al
jns 0x437e87
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
jmp 0x437e8a
lea edx, [esi + 0x28]
push eax
push edx
call fcn.004409b0
push 0x400
push 0xff
lea eax, [esi + 0x48]
push eax
call fcn.00472dd0
add esp, 0xc
cmp byte [esi + 0x33], 0
jns 0x437eb2
mov eax, dword [esi + 0x28]
jmp 0x437eb5
lea eax, [esi + 0x28]
push 0x400
push eax
lea ebx, [esi + 0x48]
push ebx
call fcn.0043d470
add esp, 0xc
push ebx
call fcn.00410790
add esp, 4
mov eax, dword [0x4b2628]
mov ecx, dword [0x4b0cc8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x438122
mov eax, dword [0x4b2620]
cmp eax, dword [0x4b2624]
je 0x438193
mov dword [esi + 0x24], 0xffffffff
mov eax, dword [0x4b2628]
mov ecx, dword [0x4b0cc8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
mov ebx, dword [esi + 0x10]
jg 0x438158
mov eax, dword [0x4b2624]
test eax, eax
mov ecx, dword [0x4b261c]
cmove eax, ecx
dec eax
cmp ecx, eax
jb 0x438196
shl eax, 2
add eax, dword [0x4b2618]
lea ecx, [esi + 0x24]
push eax
call fcn.0043e4e0
mov eax, dword [esi + 0x24]
test eax, eax
je 0x438007
cmp byte [esi + 0x33], 0
jns 0x437f6e
mov ebx, dword [esi + 0x28]
jmp 0x437f71
lea ebx, [esi + 0x28]
mov dword [esi + 8], eax
mov dword [esi + 4], ebx
mov edi, dword [esi + 0x20]
add ebx, edi
je 0x438199
push ebx
mov dword [esi + 0x18], ebx
call fcn.00484ae0
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 0x43819c
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 0x438004
push edi
call fcn.0043e420
add esp, 4
mov edi, dword [esi + 0xc]
lea ecx, [esi + 0x24]
call fcn.0043e4b0
cmp byte [esi + 0x33], 0
jns 0x438020
push dword [esi + 0x28]
call fcn.0046f880
add esp, 4
lea ecx, [edi + 0x9c]
call fcn.0043e5b0
mov eax, dword [edi + 8]
mov eax, dword [eax + 4]
mov dword [edi + eax + 8], 0x49f120
mov dword [edi + 0xc], 0x49f130
cmp byte [edi + 0x37], 0
jns 0x438051
push dword [edi + 0x2c]
call fcn.0046f880
add esp, 4
add edi, 0x40
mov ecx, ebx
call fcn.0041041e
mov ecx, ebx
call fcn.00410790
mov ecx, edi
call fcn.00410414
mov ecx, dword [esi + 0x448]
xor ecx, ebp
call fcn.00470273
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.004384f0
add esp, 8
cmp dword [edi + 4], 3
je 0x437c80
jmp 0x437d5c
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.00413750
push 0x4b2634
call fcn.0046f8f7
add esp, 4
cmp dword [0x4b2634], 0xffffffff
jne 0x437cb5
push 0x400
push str.LOG_FATAL
call fcn.004419d0
add esp, 8
mov dword [0x4b2630], eax
push 0x4b2634
call fcn.0046f96d
add esp, 4
jmp 0x437cb5
push 0x4b2628
call fcn.0046f8f7
add esp, 4
cmp dword [0x4b2628], 0xffffffff
jne 0x437ef1
xorps xmm0, xmm0
movups xmmword [0x4b2618], xmm0
push 0x4b2628
call fcn.0046f96d
add esp, 4
jmp 0x437ef1
push 0x4b2628
call fcn.0046f8f7
add esp, 4
cmp dword [0x4b2628], 0xffffffff
jne 0x437f2d
xorps xmm0, xmm0
movups xmmword [0x4b2618], xmm0
push 0x4b2628
call fcn.0046f96d
add esp, 4
jmp 0x437f2d
call fcn.00480190
int3
int3
int3
int3