Function at 0x10061410
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 [0x10123014]
xor eax, ebp
mov dword [esi + 0x448], eax
mov dword [ecx], 0x1011154c
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.10011ce0
movzx ebx, byte [esi + 0x53]
test bl, bl
jns 0x10061462
mov ebx, dword [esi + 0x4c]
push dword [esi + 0x48]
call fcn.100de098
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.1003dc2a
mov ecx, edi
push 0x10128108
call fcn.100512d8
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.1003fb7e
movsx eax, bl
mov edi, dword [esi + 8]
mov ecx, edi
push eax
call fcn.10011570
mov ecx, edi
call fcn.100107a0
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.10011ce0
mov ecx, dword [0x10128844]
test ecx, ecx
je 0x10061586
mov dword [esi + 4], esp
push eax
sub esp, 8
mov edi, esp
cmp byte [esi + 0x33], 0
js 0x10061509
mov eax, dword [esi + 0x30]
mov dword [edi + 8], eax
movsd xmm0, qword [esi + 0x28]
movsd qword [edi], xmm0
jmp 0x1006157e
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
cmp eax, 0xa
mov dword [esi + 0x14], ecx
ja 0x10061520
mov byte [edi + 0xb], al
cmp edi, edx
jbe 0x10061560
jmp 0x1006156f
mov dword [esi + 0x1c], edx
cmp eax, 0x7ffffff0
jae 0x10061aae
mov ebx, eax
or ebx, 0xf
inc ebx
push ebx
mov dword [esi + 0x18], eax
call fcn.100de068
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 0x1006156f
mov ecx, eax
add eax, edi
inc eax
cmp eax, edx
mov eax, ecx
ja 0x100619e1
inc eax
push eax
push edx
push edi
call fcn.100e1250
add esp, 0xc
mov ecx, dword [esi + 0x14]
call fcn.1008b1e0
mov esp, dword [esi + 4]
test byte [0x10125114], 0x19
mov edi, dword [esi + 0xc]
jne 0x1006199e
cmp dword [edi + 4], 3
jne 0x1006167c
cmp byte [0x10128878], 0
jne 0x1006167c
mov byte [0x10128878], 1
mov eax, dword [0x10128880]
mov ecx, dword [0x10126eb8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x100619ff
mov ecx, ebx
lea ebx, [esi + 0x48]
push ebx
call fcn.10011ce0
cmp byte [esi + 0x53], 0
jns 0x100615e9
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 0x1006161c
push 0x5c
push edi
mov dword [esi + 4], eax
call fcn.100e1a60
add esp, 8
lea ecx, [eax + 1]
test eax, eax
mov eax, dword [esi + 4]
cmove ecx, edi
jmp 0x1006161e
xor ecx, ecx
lea edi, [esi + 0x34]
push ebx
push eax
push ecx
push str._s:_d:__s
push edi
call fcn.1008a320
add esp, 0x14
cmp byte [esi + 0x53], 0
jns 0x10061643
push dword [esi + 0x48]
call fcn.100de098
add esp, 4
movzx eax, byte [esi + 0x3f]
test al, al
jns 0x10061651
mov edi, dword [esi + 0x34]
mov eax, dword [esi + 0x38]
push eax
push edi
push dword [0x1012887c]
call fcn.1008b510
add esp, 0xc
cmp byte [esi + 0x3f], 0
jns 0x10061672
push dword [esi + 0x34]
call fcn.100de098
add esp, 4
mov byte [0x10128878], 0
mov edi, dword [esi + 0xc]
mov ecx, dword [0x10128850]
test ecx, ecx
je 0x100616cc
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 0x1006192f
mov eax, dword [0x10124bfc]
test al, 2
je 0x100616ef
cmp byte [esi + 0x33], 0
jns 0x100616e1
mov eax, dword [esi + 0x28]
mov dword [esi + 8], eax
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x10124bfc]
test al, 4
jne 0x100616fe
cmp dword [edi + 4], 2
jl 0x10061747
cmp eax, 1
ja 0x10061747
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 0x10061747
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.100f3406
add esp, 0xc
test eax, eax
js 0x1006173f
add edi, eax
cmp edi, ebx
jb 0x10061720
mov eax, dword [0x10124bfc]
mov edi, dword [esi + 0xc]
test al, 1
je 0x10061780
call fcn.10060cb0
test al, al
je 0x10061780
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 [0x1012885c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [edi + 4], 3
mov ebx, dword [esi + 0x10]
jne 0x1006192f
mov ecx, dword [0x10128814]
test ecx, ecx
je 0x100617b1
movzx eax, byte [esi + 0x33]
test al, al
jns 0x100617a7
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
jmp 0x100617aa
lea edx, [esi + 0x28]
push eax
push edx
call fcn.1005d4e0
push 0x400
push 0xff
lea eax, [esi + 0x48]
push eax
call fcn.100e17d0
add esp, 0xc
cmp byte [esi + 0x33], 0
jns 0x100617d2
mov eax, dword [esi + 0x28]
jmp 0x100617d5
lea eax, [esi + 0x28]
push 0x400
push eax
lea ebx, [esi + 0x48]
push ebx
call fcn.10083150
add esp, 0xc
push ebx
call fcn.10010790
add esp, 4
mov eax, dword [0x10128874]
mov ecx, dword [0x10126eb8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x10061a42
mov eax, dword [0x1012886c]
cmp eax, dword [0x10128870]
je 0x10061ab3
mov dword [esi + 0x24], 0xffffffff
mov eax, dword [0x10128874]
mov ecx, dword [0x10126eb8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
mov ebx, dword [esi + 0x10]
jg 0x10061a78
mov eax, dword [0x10128870]
test eax, eax
mov ecx, dword [0x10128868]
cmove eax, ecx
dec eax
cmp ecx, eax
jb 0x10061ab6
shl eax, 2
add eax, dword [0x10128864]
lea ecx, [esi + 0x24]
push eax
call fcn.10060380
mov eax, dword [esi + 0x24]
test eax, eax
je 0x10061927
cmp byte [esi + 0x33], 0
jns 0x1006188e
mov ebx, dword [esi + 0x28]
jmp 0x10061891
lea ebx, [esi + 0x28]
mov dword [esi + 8], eax
mov dword [esi + 4], ebx
mov edi, dword [esi + 0x20]
add ebx, edi
je 0x10061ab9
push ebx
mov dword [esi + 0x18], ebx
call fcn.100f61a0
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 0x10061abc
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 0x10061924
push edi
call fcn.10060230
add esp, 4
mov edi, dword [esi + 0xc]
lea ecx, [esi + 0x24]
call fcn.10060350
cmp byte [esi + 0x33], 0
jns 0x10061940
push dword [esi + 0x28]
call fcn.100de098
add esp, 4
lea ecx, [edi + 0x9c]
call fcn.1008b1c0
mov eax, dword [edi + 8]
mov eax, dword [eax + 4]
mov dword [edi + eax + 8], 0x10111e3c
mov dword [edi + 0xc], 0x10111e40
cmp byte [edi + 0x37], 0
jns 0x10061971
push dword [edi + 0x2c]
call fcn.100de098
add esp, 4
add edi, 0x40
mov ecx, ebx
call fcn.1001041e
mov ecx, ebx
call fcn.10010790
mov ecx, edi
call fcn.10010414
mov ecx, dword [esi + 0x448]
xor ecx, ebp
call fcn.100dea63
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.10061e10
add esp, 8
cmp dword [edi + 4], 3
je 0x100615a0
jmp 0x1006167c
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.1003963c
push 0x10128880
call fcn.100de107
add esp, 4
cmp dword [0x10128880], 0xffffffff
jne 0x100615d5
push 0x400
push str.LOG_FATAL
call fcn.1008b4d0
add esp, 8
mov dword [0x1012887c], eax
push 0x10128880
call fcn.100de17d
add esp, 4
jmp 0x100615d5
push 0x10128874
call fcn.100de107
add esp, 4
cmp dword [0x10128874], 0xffffffff
jne 0x10061811
xorps xmm0, xmm0
movups xmmword [0x10128864], xmm0
push 0x10128874
call fcn.100de17d
add esp, 4
jmp 0x10061811
push 0x10128874
call fcn.100de107
add esp, 4
cmp dword [0x10128874], 0xffffffff
jne 0x1006184d
xorps xmm0, xmm0
movups xmmword [0x10128864], xmm0
push 0x10128874
call fcn.100de17d
add esp, 4
jmp 0x1006184d
call fcn.100f18b0
int3
int3
int3
int3