Function at 0x10041028
Capabilities:
Print debug messages

Disassembly:
push 0xa4
mov eax, 0x10086bc2
call fcn.10063fad
mov edi, ecx
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0xac], eax
mov dword [eax], ebx
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0x9c], ebx
cmp eax, 0x80040306
jne 0x100413f3
mov eax, dword [edi + 0x50]
mov dword [edi + 0x48], ebx
mov esi, ebx
cmp dword [eax - 8], ebx
jne 0x10041072
mov esi, 0x80004005
cmp dword [edi + 0x40], ebx
je 0x10041083
push dword [edi + 0x40]
call fcn.1007f185
pop ecx
mov dword [edi + 0x40], ebx
test esi, esi
js 0x100413dc
push 0x318
call fcn.1007f185
pop ecx
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], ebx
test eax, eax
je 0x100410b4
mov ecx, eax
call fcn.1007b0e6
mov ebx, eax
mov dword [ebp - 0x98], eax
jmp 0x100410ba
mov dword [ebp - 0x98], ebx
or dword [ebp - 4], 0xffffffff
test ebx, ebx
jne 0x100410c7
mov esi, 0x8007000e
mov dword [ebp - 0xa0], 1
test esi, esi
js 0x10041332
mov ecx, ebx
call fcn.1007b15c
mov esi, eax
test esi, esi
js 0x10041332
push 0x20
push dword [edi + 0x50]
mov ecx, ebx
call fcn.1007f185
mov esi, eax
test esi, esi
js 0x10041332
lea eax, [ebp - 0xa8]
push eax
push ebx
call fcn.10041a84
mov esi, eax
test esi, esi
js 0x10041332
push 0x428
call fcn.1007f185
pop ecx
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x1004113d
push ebx
mov ecx, eax
call fcn.1007f185
jmp 0x1004113f
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x90], eax
test eax, eax
jne 0x10041152
mov esi, 0x8007000e
test esi, esi
js 0x1004131b
push 0x20
push 0x10001914
mov ecx, eax
call fcn.1007f185
mov esi, eax
test esi, esi
js 0x10041315
cmp dword [ebp - 0xa8], 0
lea eax, [edi + 0x50]
je 0x1004119c
push 0x10003a18
push eax
lea eax, [ebp - 0xa4]
push eax
call fcn.10080130
xor ecx, ecx
mov dword [ebp - 4], 2
inc ecx
jmp 0x100411b1
push 0x10003a38
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.10080130
push 2
pop ecx
push dword [eax]
mov dword [ebp - 0x8c], ecx
call dword [sym.imp.kernel32.dll_OutputDebugStringW]
mov eax, dword [ebp - 0x8c]
test al, 2
je 0x100411e9
and eax, 0xfffffffd
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x94], eax
call fcn.1008045b
mov eax, dword [ebp - 0x8c]
or dword [ebp - 4], 0xffffffff
test al, 1
je 0x100411fc
lea ecx, [ebp - 0xa4]
call fcn.1008045b
mov ecx, dword [ebp - 0x90]
push 0
push 0
call fcn.1007f185
and dword [ebp - 0x8c], 0
xor ecx, ecx
lea eax, [edi + 0x44]
mov word [eax], cx
lea ecx, [ebp - 0x8c]
push ecx
mov ecx, dword [ebp - 0x90]
push 2
push eax
call fcn.1007f185
cmp dword [ebp - 0x8c], 2
je 0x1004123d
mov esi, 0x80004005
test esi, esi
js 0x1004125a
movzx eax, word [edi + 0x44]
shl eax, 3
push eax
call fcn.1007f185
mov dword [edi + 0x40], eax
test eax, eax
jne 0x1004125a
mov esi, 0x8007000e
and dword [ebp - 0x94], 0
xor eax, eax
cmp ax, word [edi + 0x44]
jae 0x10041315
mov ebx, dword [ebp - 0x90]
test esi, esi
js 0x1004130f
and dword [ebp - 0x8c], 0
lea eax, [ebp - 0x8c]
push eax
push 0x78
lea eax, [ebp - 0x88]
push eax
mov ecx, ebx
call fcn.1007f185
cmp dword [ebp - 0x8c], 0x78
je 0x100412a7
mov esi, 0x80004005
mov ecx, dword [edi + 0x40]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x94]
mov dword [ecx + edx*8 + 4], eax
mov ecx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x48]
cmp eax, ecx
cmovbe eax, ecx
mov dword [edi + 0x48], eax
test esi, esi
js 0x100412f6
push dword [ebp - 0xa8]
lea eax, [ebp - 0x88]
push eax
mov ecx, edi
call fcn.1007f185
mov ecx, dword [edi + 0x40]
mov edx, dword [ebp - 0x94]
mov dword [ecx + edx*8], eax
test eax, eax
je 0x100412f6
inc dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x94]
movzx eax, word [edi + 0x44]
inc ecx
mov dword [ebp - 0x94], ecx
cmp ecx, eax
jl 0x10041273
mov ebx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x10041332
mov ecx, eax
call fcn.1007a881
push dword [ebp - 0x90]
call fcn.1007f185
pop ecx
test ebx, ebx
je 0x10041344
mov ecx, ebx
call fcn.1007b102
push ebx
call fcn.1007f185
pop ecx
cmp dword [ebp - 0x9c], 0
je 0x100413da
test esi, esi
js 0x100413da
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x100413c0
movzx eax, word [edi + 0x44]
and dword [ebp - 0x98], 0
xor ebx, ebx
test eax, eax
jle 0x100413c0
lea edx, [ecx + 4]
cmp dword [ebp - 0xa0], 0
je 0x100413ab
mov eax, dword [ebp - 0x98]
cmp dword [edx], eax
jae 0x1004138e
and dword [ebp - 0xa0], 0
mov eax, dword [edx]
mov dword [ebp - 0x98], eax
movzx eax, word [edi + 0x44]
inc ebx
add edx, 8
cmp ebx, eax
jl 0x10041374
cmp dword [ebp - 0xa0], 0
jne 0x100413c0
movzx eax, word [edi + 0x44]
push 0x10041c69
push 8
push eax
push ecx
call fcn.1007f185
add esp, 0x10
mov ecx, edi
mov dword [edi + 0x4c], esi
call fcn.10041536
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xac]
mov dword [ecx], eax
jmp 0x100413f1
xor ebx, ebx
cmp dword [edi + 0x40], 0
je 0x100413ee
push dword [edi + 0x40]
call fcn.1007f185
pop ecx
mov dword [edi + 0x40], ebx
mov dword [edi + 0x4c], esi
mov eax, esi
call fcn.10064030
ret 4