Function at 0x43a030
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 [0x4b9014]
xor eax, ebp
mov dword [esi + 0x448], eax
mov dword [ecx], 0x4a9a9c
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 0x43a082
mov ebx, dword [esi + 0x4c]
push dword [esi + 0x48]
call fcn.00472a2c
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.0041931a
mov ecx, edi
push 0x4bdf30
call fcn.0042c9d8
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.0041b26e
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 [0x4be630]
test ecx, ecx
je 0x43a1a6
mov dword [esi + 4], esp
push eax
sub esp, 8
mov edi, esp
cmp byte [esi + 0x33], 0
js 0x43a129
mov eax, dword [esi + 0x30]
mov dword [edi + 8], eax
movsd xmm0, qword [esi + 0x28]
movsd qword [edi], xmm0
jmp 0x43a19e
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
cmp eax, 0xa
mov dword [esi + 0x14], ecx
ja 0x43a140
mov byte [edi + 0xb], al
cmp edi, edx
jbe 0x43a180
jmp 0x43a18f
mov dword [esi + 0x1c], edx
cmp eax, 0x7ffffff0
jae 0x43a6ce
mov ebx, eax
or ebx, 0xf
inc ebx
push ebx
mov dword [esi + 0x18], eax
call fcn.004729fc
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 0x43a18f
mov ecx, eax
add eax, edi
inc eax
cmp eax, edx
mov eax, ecx
ja 0x43a601
inc eax
push eax
push edx
push edi
call fcn.00475a10
add esp, 0xc
mov ecx, dword [esi + 0x14]
call fcn.0044b7d0
mov esp, dword [esi + 4]
test byte [0x4baf2c], 0x19
mov edi, dword [esi + 0xc]
jne 0x43a5be
cmp dword [edi + 4], 3
jne 0x43a29c
cmp byte [0x4be664], 0
jne 0x43a29c
mov byte [0x4be664], 1
mov eax, dword [0x4be66c]
mov ecx, dword [0x4bcce8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x43a61f
mov ecx, ebx
lea ebx, [esi + 0x48]
push ebx
call fcn.00412ab0
cmp byte [esi + 0x53], 0
jns 0x43a209
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 0x43a23c
push 0x5c
push edi
mov dword [esi + 4], eax
call fcn.00476220
add esp, 8
lea ecx, [eax + 1]
test eax, eax
mov eax, dword [esi + 4]
cmove ecx, edi
jmp 0x43a23e
xor ecx, ecx
lea edi, [esi + 0x34]
push ebx
push eax
push ecx
push str._s:_d:__s
push edi
call fcn.0043f470
add esp, 0x14
cmp byte [esi + 0x53], 0
jns 0x43a263
push dword [esi + 0x48]
call fcn.00472a2c
add esp, 4
movzx eax, byte [esi + 0x3f]
test al, al
jns 0x43a271
mov edi, dword [esi + 0x34]
mov eax, dword [esi + 0x38]
push eax
push edi
push dword [0x4be668]
call fcn.0044e390
add esp, 0xc
cmp byte [esi + 0x3f], 0
jns 0x43a292
push dword [esi + 0x34]
call fcn.00472a2c
add esp, 4
mov byte [0x4be664], 0
mov edi, dword [esi + 0xc]
mov ecx, dword [0x4be63c]
test ecx, ecx
je 0x43a2ec
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 0x43a54f
mov eax, dword [0x4bab20]
test al, 2
je 0x43a30f
cmp byte [esi + 0x33], 0
jns 0x43a301
mov eax, dword [esi + 0x28]
mov dword [esi + 8], eax
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x4bab20]
test al, 4
jne 0x43a31e
cmp dword [edi + 4], 2
jl 0x43a367
cmp eax, 1
ja 0x43a367
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 0x43a367
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.00487108
add esp, 0xc
test eax, eax
js 0x43a35f
add edi, eax
cmp edi, ebx
jb 0x43a340
mov eax, dword [0x4bab20]
mov edi, dword [esi + 0xc]
test al, 1
je 0x43a3a0
call fcn.00439930
test al, al
je 0x43a3a0
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 [0x4be648]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [edi + 4], 3
mov ebx, dword [esi + 0x10]
jne 0x43a54f
mov ecx, dword [0x4c9130]
test ecx, ecx
je 0x43a3d1
movzx eax, byte [esi + 0x33]
test al, al
jns 0x43a3c7
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
jmp 0x43a3ca
lea edx, [esi + 0x28]
push eax
push edx
call fcn.0044da60
push 0x400
push 0xff
lea eax, [esi + 0x48]
push eax
call fcn.00475f90
add esp, 0xc
cmp byte [esi + 0x33], 0
jns 0x43a3f2
mov eax, dword [esi + 0x28]
jmp 0x43a3f5
lea eax, [esi + 0x28]
push 0x400
push eax
lea ebx, [esi + 0x48]
push ebx
call fcn.0043f420
add esp, 0xc
push ebx
call fcn.00411770
add esp, 4
mov eax, dword [0x4be660]
mov ecx, dword [0x4bcce8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x43a662
mov eax, dword [0x4be658]
cmp eax, dword [0x4be65c]
je 0x43a6d3
mov dword [esi + 0x24], 0xffffffff
mov eax, dword [0x4be660]
mov ecx, dword [0x4bcce8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
mov ebx, dword [esi + 0x10]
jg 0x43a698
mov eax, dword [0x4be65c]
test eax, eax
mov ecx, dword [0x4be654]
cmove eax, ecx
dec eax
cmp ecx, eax
jb 0x43a6d6
shl eax, 2
add eax, dword [0x4be650]
lea ecx, [esi + 0x24]
push eax
call fcn.00439530
mov eax, dword [esi + 0x24]
test eax, eax
je 0x43a547
cmp byte [esi + 0x33], 0
jns 0x43a4ae
mov ebx, dword [esi + 0x28]
jmp 0x43a4b1
lea ebx, [esi + 0x28]
mov dword [esi + 8], eax
mov dword [esi + 4], ebx
mov edi, dword [esi + 0x20]
add ebx, edi
je 0x43a6d9
push ebx
mov dword [esi + 0x18], ebx
call fcn.0048adc0
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 0x43a6dc
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 0x43a544
push edi
call fcn.00439470
add esp, 4
mov edi, dword [esi + 0xc]
lea ecx, [esi + 0x24]
call fcn.00439500
cmp byte [esi + 0x33], 0
jns 0x43a560
push dword [esi + 0x28]
call fcn.00472a2c
add esp, 4
lea ecx, [edi + 0x9c]
call fcn.0044b7b0
mov eax, dword [edi + 8]
mov eax, dword [eax + 4]
mov dword [edi + eax + 8], 0x4a9c1c
mov dword [edi + 0xc], 0x4a9c20
cmp byte [edi + 0x37], 0
jns 0x43a591
push dword [edi + 0x2c]
call fcn.00472a2c
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.00473933
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.0043aa30
add esp, 8
cmp dword [edi + 4], 3
je 0x43a1c0
jmp 0x43a29c
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.00414a00
push 0x4be66c
call fcn.00472aa7
add esp, 4
cmp dword [0x4be66c], 0xffffffff
jne 0x43a1f5
push 0x400
push str.LOG_FATAL
call fcn.0044e350
add esp, 8
mov dword [0x4be668], eax
push 0x4be66c
call fcn.00472b1d
add esp, 4
jmp 0x43a1f5
push 0x4be660
call fcn.00472aa7
add esp, 4
cmp dword [0x4be660], 0xffffffff
jne 0x43a431
xorps xmm0, xmm0
movups xmmword [0x4be650], xmm0
push 0x4be660
call fcn.00472b1d
add esp, 4
jmp 0x43a431
push 0x4be660
call fcn.00472aa7
add esp, 4
cmp dword [0x4be660], 0xffffffff
jne 0x43a46d
xorps xmm0, xmm0
movups xmmword [0x4be650], xmm0
push 0x4be660
call fcn.00472b1d
add esp, 4
jmp 0x43a46d
call fcn.00484160
int3
int3
int3
int3