Function at 0x416980
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x98
mov eax, dword [0x56f790]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
cmp dword [esi + 0x10], 1
jne 0x416bdd
mov edx, dword [esi + 8]
push ebx
push edi
test edx, edx
je 0x416a8c
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4169b3
sub ecx, edi
je 0x416a8c
mov edi, dword [esi + 4]
test edi, edi
je 0x4169ef
mov ecx, edi
lea ebx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4169d0
sub ecx, ebx
je 0x4169ef
push edi
push dword [esi + 0xc]
push edx
push str._s__d_:_s:
call fcn.0041be00
add esp, 0x10
jmp 0x416a00
push dword [esi + 0xc]
push edx
push str._s__d_:
call fcn.0041be00
add esp, 0xc
lea edi, [eax + 1]
push edi
call fcn.004ac4f3
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x416a1f
push str.Out_of_memory__
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x416a8c
push edi
push 0
push ebx
call fcn.004b17e0
mov edx, dword [esi + 4]
add esp, 0xc
test edx, edx
je 0x416a67
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x98], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416a40
sub ecx, dword [ebp - 0x98]
je 0x416a67
push edx
push dword [esi + 0xc]
push dword [esi + 8]
push str._s__d_:_s:
push edi
push ebx
call fcn.0041bed0
add esp, 0x18
jmp 0x416a7c
push dword [esi + 0xc]
push dword [esi + 8]
push str._s__d_:
push edi
push ebx
call fcn.0041bed0
add esp, 0x14
push ebx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push ebx
call fcn.004ac60c
add esp, 4
lea eax, [ebp - 0x94]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
push 0x80
lea eax, [ebp - 0x84]
push 0
push eax
call fcn.004b17e0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
movzx eax, word [ebp - 0x86]
push eax
movzx eax, word [ebp - 0x88]
push eax
movzx eax, word [ebp - 0x8a]
push eax
movzx eax, word [ebp - 0x8c]
add eax, 8
push eax
push str.___d:_d:_d:_d__TID:0x_0xd
lea eax, [ebp - 0x84]
push 0x3f
push eax
call fcn.00405640
lea ecx, [ebp - 0x84]
add esp, 0x20
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x416b00
sub ecx, edx
sar ecx, 1
lea esi, [ecx + 2]
mov dword [ebp - 0x98], esi
call fcn.00405630
mov ebx, eax
lea eax, [ebp + 0x10]
push eax
push 0
push dword [ebp + 0xc]
mov ecx, dword [ebx]
push 0
push 0
push dword [ebx + 4]
or ecx, 2
push ecx
call fcn.004cd0a1
or ecx, 0xffffffff
mov edx, 2
test eax, eax
cmovs eax, ecx
xor ecx, ecx
inc eax
add esi, eax
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004ac4f3
mov edi, eax
add esp, 0x20
test edi, edi
jne 0x416b82
push 0x52e050
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ac4b8
mov esp, ebp
pop ebp
ret
lea eax, [esi + esi]
push eax
push 0
push edi
call fcn.004b17e0
lea eax, [ebp - 0x84]
push eax
push esi
push edi
call fcn.004d0a42
push 0x52e070
push esi
push edi
call fcn.004d096d
lea eax, [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x98]
sub esi, eax
push 0
push dword [ebp + 0xc]
push esi
lea eax, [edi + eax*2]
push eax
push dword [ebx + 4]
push dword [ebx]
call fcn.004cd0e9
add esp, 0x40
push edi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push edi
call fcn.004ac60c
add esp, 4
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.004ac4b8
mov esp, ebp
pop ebp
ret