Function at 0x442240
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 [0x533014]
xor eax, ebp
mov dword [esi + 0x448], eax
mov dword [ecx], 0x519d6c
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.00411ef0
movzx ebx, byte [esi + 0x53]
test bl, bl
jns 0x442292
mov ebx, dword [esi + 0x4c]
push dword [esi + 0x48]
call fcn.004e28b6
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.0042045a
mov ecx, edi
push 0x5381a8
call fcn.00433b18
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.004223ae
movsx eax, bl
mov edi, dword [esi + 8]
mov ecx, edi
push eax
call fcn.00411780
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.00411ef0
mov ecx, dword [0x5388b0]
test ecx, ecx
je 0x4423b6
mov dword [esi + 4], esp
push eax
sub esp, 8
mov edi, esp
cmp byte [esi + 0x33], 0
js 0x442339
mov eax, dword [esi + 0x30]
mov dword [edi + 8], eax
movsd xmm0, qword [esi + 0x28]
movsd qword [edi], xmm0
jmp 0x4423ae
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
cmp eax, 0xa
mov dword [esi + 0x14], ecx
ja 0x442350
mov byte [edi + 0xb], al
cmp edi, edx
jbe 0x442390
jmp 0x44239f
mov dword [esi + 0x1c], edx
cmp eax, 0x7ffffff0
jae 0x4428de
mov ebx, eax
or ebx, 0xf
inc ebx
push ebx
mov dword [esi + 0x18], eax
call fcn.004e2886
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 0x44239f
mov ecx, eax
add eax, edi
inc eax
cmp eax, edx
mov eax, ecx
ja 0x442811
inc eax
push eax
push edx
push edi
call fcn.004e5930
add esp, 0xc
mov ecx, dword [esi + 0x14]
call fcn.004519c0
mov esp, dword [esi + 4]
test byte [0x53501c], 0x19
mov edi, dword [esi + 0xc]
jne 0x4427ce
cmp dword [edi + 4], 3
jne 0x4424ac
cmp byte [0x5388e4], 0
jne 0x4424ac
mov byte [0x5388e4], 1
mov eax, dword [0x5388ec]
mov ecx, dword [0x536e20]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x44282f
mov ecx, ebx
lea ebx, [esi + 0x48]
push ebx
call fcn.00411ef0
cmp byte [esi + 0x53], 0
jns 0x442419
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 0x44244c
push 0x5c
push edi
mov dword [esi + 4], eax
call fcn.004e6140
add esp, 8
lea ecx, [eax + 1]
test eax, eax
mov eax, dword [esi + 4]
cmove ecx, edi
jmp 0x44244e
xor ecx, ecx
lea edi, [esi + 0x34]
push ebx
push eax
push ecx
push str._s:_d:__s
push edi
call fcn.00450da0
add esp, 0x14
cmp byte [esi + 0x53], 0
jns 0x442473
push dword [esi + 0x48]
call fcn.004e28b6
add esp, 4
movzx eax, byte [esi + 0x3f]
test al, al
jns 0x442481
mov edi, dword [esi + 0x34]
mov eax, dword [esi + 0x38]
push eax
push edi
push dword [0x5388e8]
call fcn.00454b50
add esp, 0xc
cmp byte [esi + 0x3f], 0
jns 0x4424a2
push dword [esi + 0x34]
call fcn.004e28b6
add esp, 4
mov byte [0x5388e4], 0
mov edi, dword [esi + 0xc]
mov ecx, dword [0x5388bc]
test ecx, ecx
je 0x4424fc
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 0x44275f
mov eax, dword [0x534b20]
test al, 2
je 0x44251f
cmp byte [esi + 0x33], 0
jns 0x442511
mov eax, dword [esi + 0x28]
mov dword [esi + 8], eax
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x534b20]
test al, 4
jne 0x44252e
cmp dword [edi + 4], 2
jl 0x442577
cmp eax, 1
ja 0x442577
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 0x442577
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.004f7a23
add esp, 0xc
test eax, eax
js 0x44256f
add edi, eax
cmp edi, ebx
jb 0x442550
mov eax, dword [0x534b20]
mov edi, dword [esi + 0xc]
test al, 1
je 0x4425b0
call fcn.00441b10
test al, al
je 0x4425b0
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 [0x5388c8]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [edi + 4], 3
mov ebx, dword [esi + 0x10]
jne 0x44275f
mov ecx, dword [0x54313c]
test ecx, ecx
je 0x4425e1
movzx eax, byte [esi + 0x33]
test al, al
jns 0x4425d7
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
jmp 0x4425da
lea edx, [esi + 0x28]
push eax
push edx
call fcn.00453da0
push 0x400
push 0xff
lea eax, [esi + 0x48]
push eax
call fcn.004e5eb0
add esp, 0xc
cmp byte [esi + 0x33], 0
jns 0x442602
mov eax, dword [esi + 0x28]
jmp 0x442605
lea eax, [esi + 0x28]
push 0x400
push eax
lea ebx, [esi + 0x48]
push ebx
call fcn.00445ad0
add esp, 0xc
push ebx
call fcn.00410790
add esp, 4
mov eax, dword [0x5388e0]
mov ecx, dword [0x536e20]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x442872
mov eax, dword [0x5388d8]
cmp eax, dword [0x5388dc]
je 0x4428e3
mov dword [esi + 0x24], 0xffffffff
mov eax, dword [0x5388e0]
mov ecx, dword [0x536e20]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
mov ebx, dword [esi + 0x10]
jg 0x4428a8
mov eax, dword [0x5388dc]
test eax, eax
mov ecx, dword [0x5388d4]
cmove eax, ecx
dec eax
cmp ecx, eax
jb 0x4428e6
shl eax, 2
add eax, dword [0x5388d0]
lea ecx, [esi + 0x24]
push eax
call fcn.00441830
mov eax, dword [esi + 0x24]
test eax, eax
je 0x442757
cmp byte [esi + 0x33], 0
jns 0x4426be
mov ebx, dword [esi + 0x28]
jmp 0x4426c1
lea ebx, [esi + 0x28]
mov dword [esi + 8], eax
mov dword [esi + 4], ebx
mov edi, dword [esi + 0x20]
add ebx, edi
je 0x4428e9
push ebx
mov dword [esi + 0x18], ebx
call fcn.004fa930
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 0x4428ec
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 0x442754
push edi
call fcn.00441770
add esp, 4
mov edi, dword [esi + 0xc]
lea ecx, [esi + 0x24]
call fcn.00441800
cmp byte [esi + 0x33], 0
jns 0x442770
push dword [esi + 0x28]
call fcn.004e28b6
add esp, 4
lea ecx, [edi + 0x9c]
call fcn.004519a0
mov eax, dword [edi + 8]
mov eax, dword [eax + 4]
mov dword [edi + eax + 8], 0x51a3b4
mov dword [edi + 0xc], 0x51a3c0
cmp byte [edi + 0x37], 0
jns 0x4427a1
push dword [edi + 0x2c]
call fcn.004e28b6
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.004e3343
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.00442c40
add esp, 8
cmp dword [edi + 4], 3
je 0x4423d0
jmp 0x4424ac
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.00418f58
push 0x5388ec
call fcn.004e2927
add esp, 4
cmp dword [0x5388ec], 0xffffffff
jne 0x442405
push 0x400
push str.LOG_FATAL
call fcn.00454b10
add esp, 8
mov dword [0x5388e8], eax
push 0x5388ec
call fcn.004e299d
add esp, 4
jmp 0x442405
push 0x5388e0
call fcn.004e2927
add esp, 4
cmp dword [0x5388e0], 0xffffffff
jne 0x442641
xorps xmm0, xmm0
movups xmmword [0x5388d0], xmm0
push 0x5388e0
call fcn.004e299d
add esp, 4
jmp 0x442641
push 0x5388e0
call fcn.004e2927
add esp, 4
cmp dword [0x5388e0], 0xffffffff
jne 0x44267d
xorps xmm0, xmm0
movups xmmword [0x5388d0], xmm0
push 0x5388e0
call fcn.004e299d
add esp, 4
jmp 0x44267d
call fcn.004f4a00
int3
int3
int3
int3