Function at 0x40dac0
Capabilities:
Print debug messages

Disassembly:
sub esp, 0xd24
mov dword [esp], 0
call fcn.0040e0a0
mov eax, dword [esp + 0xd34]
mov ecx, dword [esp + 0xd30]
mov edx, dword [esp + 0xd2c]
push eax
mov eax, dword [esp + 0xd2c]
push ecx
push edx
push eax
call fcn.00410b80
test eax, eax
je 0x40df52
mov eax, dword [0x40365c]
test eax, eax
je 0x40db17
push eax
push 0x419be8
call fcn.0040bdf7
add esp, 8
push ebx
push ebp
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push 0x419be8
call edi
test eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [esp + 0x14], eax
jne 0x40db45
call ebx
push 0x40496c
call ebp
mov eax, dword [0x403634]
test eax, eax
je 0x40db5c
push eax
push 0x419be8
call fcn.0040bdf7
add esp, 8
push 0x419be8
call edi
mov esi, eax
test esi, esi
jne 0x40db72
call ebx
push 0x404954
call ebp
mov eax, dword [0x403648]
test eax, eax
je 0x40db8a
push eax
call edi
mov edi, eax
test edi, edi
mov dword [esp + 0x10], edi
jne 0x40db97
jmp 0x40db8e
mov edi, dword [esp + 0x10]
push 0x40493c
call ebp
call ebx
push esi
call fcn.0040fef0
push 0x404920
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov ebp, dword [esp + 0x14]
test ebp, ebp
mov dword [0x419bdc], eax
je 0x40df2f
test esi, esi
je 0x40df2f
mov ebx, dword [sym.imp.KERNEL32.dll_LocalAlloc]
push 0xf0
push 0
call ebx
mov edx, eax
test edx, edx
mov dword [0x419be0], edx
je 0x40df16
xor eax, eax
mov edi, edx
mov ecx, 0x3c
rep stosd dword es:[edi], eax
mov dword [edx], 0x69
mov dword [edx + 4], 0xf0
mov dword [edx + 0x3c], eax
mov dword [edx + 0x54], 0x4181e0
mov dword [edx + 0x10], ebp
mov ebp, dword [esp + 0xd38]
mov dword [edx + 0x34], ebp
mov dword [edx + 0x28], esi
mov dword [edx + 0x98], fcn.00411a10
mov dword [edx + 0xa8], 0x405830
mov dword [edx + 0xac], 0x40d9f0
mov ecx, dword [0x4181e8]
mov dword [edx + 0x50], ecx
mov eax, dword [0x4181ec]
mov dword [edx + 0x48], eax
mov ecx, dword [0x4181f0]
mov dword [edx + 0x4c], ecx
mov dword [edx + 0x84], fcn.0040ee00
mov dword [edx + 0x88], fcn.0040ec50
mov dword [edx + 0x8c], 0x40f000
mov dword [edx + 0x90], 0x40f070
mov dword [edx + 0x94], 0x406f80
mov dword [edx + 0xc8], fcn.0040ebc0
mov dword [edx + 0xcc], fcn.0040ea70
mov dword [edx + 0x74], 0x406bf0
mov edx, dword [esp + 0x14]
push 0x404910
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40df03
call eax
mov ecx, dword [0x419be0]
mov dword [ecx + 0x64], eax
call fcn.0040e4e0
mov edx, dword [0x419be0]
mov dword [edx + 0x80], eax
mov ecx, dword [edx + 0x64]
test ecx, ecx
je 0x40df09
test eax, eax
je 0x40df09
xor eax, eax
mov ecx, 0x241
lea edi, [esp + 0x1c]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [esp + 0x18], 0x115
mov dword [esp + 0x1c], 0x90a
mov dword [esp + 0x2ac], edx
mov edx, dword [edx + 0x4c]
push edx
push 0
call ebx
mov edi, eax
test edi, edi
mov dword [esp + 0x24], edi
je 0x40df03
mov ecx, dword [0x4181f0]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
push 0x41a8a0
lea eax, [esp + 0x38]
push eax
mov dword [esp + 0x30], 0
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov eax, dword [0x419be0]
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x2c], ecx
mov edx, dword [eax + 0x48]
mov dword [esp + 0x30], edx
mov ecx, dword [eax + 0x48]
mov dword [esp + 0x2d0], ecx
mov edx, dword [eax + 0x4c]
mov ecx, dword [0x41821c]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2cc], edx
mov edx, dword [0x418220]
mov dword [esp + 0x2b0], ecx
mov ecx, dword [0x418228]
mov dword [esp + 0x27c], eax
mov eax, dword [0x418224]
mov dword [esp + 0x2b4], edx
mov edx, dword [0x418230]
mov dword [esp + 0x2bc], ecx
mov ecx, esi
mov dword [esp + 0x26c], ebp
mov dword [esp + 0x28c], ebp
mov dword [esp + 0x290], esi
mov dword [esp + 0x278], esi
mov dword [esp + 0x25c], 1
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x2c0], edx
call fcn.0040da30
mov dword [esp + 0x91e], eax
mov eax, dword [0x419be0]
push eax
call fcn.0040e4d0
push 0x208
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x30a]
push edx
mov dword [esp + 0x926], eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
mov ecx, dword [esp + 0x278]
mov edi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x104
lea eax, [esp + 0x928]
push eax
push 0x2bf
push ecx
call edi
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x928]
push eax
lea ecx, [esp + 0x512]
push ecx
call ebx
mov eax, dword [esp + 0x284]
add esp, 0xc
push 0x104
lea edx, [esp + 0xb30]
push edx
push 0x2c1
push eax
call edi
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0xb30]
push edx
lea eax, [esp + 0x71a]
push eax
call ebx
mov ecx, dword [esp + 0x30]
mov edx, dword [0x419be0]
add esp, 0xc
push 0
push ecx
push edx
mov dword [esp + 0x2a0], 0x40d9c0
call fcn.0040ee00
mov ecx, dword [0x419be0]
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x40dee6
lea edi, [ecx + 0x100]
mov ebx, eax
mov eax, dword [edi]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x40dee0
mov edx, dword [esp + 0x24]
push edx
lea edx, [esp + 0x1c]
push edx
push ecx
call eax
mov ecx, dword [0x419be0]
add edi, 0x28
dec ebx
jne 0x40dec4
mov eax, dword [ecx + 0x64]
mov ecx, dword [ecx + 0x80]
lea edx, [esp + 0x18]
push edx
push ecx
call dword [eax + 0x28]
mov edx, dword [esp + 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov edx, dword [0x419be0]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov edi, dword [esp + 0x10]
jmp 0x40df1d
mov ebp, dword [esp + 0xd38]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov eax, dword [esp + 0x14]
push eax
call esi
jmp 0x40df3c
mov ebp, dword [esp + 0xd38]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
test edi, edi
je 0x40df43
push edi
call esi
push ebp
call fcn.0040fec0
call fcn.0040e100
pop edi
pop esi
pop ebp
pop ebx
xor eax, eax
add esp, 0xd24
ret 0x10