Function at 0x40dad0
Capabilities:
Print debug messages

Disassembly:
sub esp, 0xd24
mov dword [esp], 0
call fcn.0040e0b0
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.00410b90
test eax, eax
je 0x40df62
mov eax, dword [0x40365c]
test eax, eax
je 0x40db27
push eax
push 0x419be8
call fcn.0040be07
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 0x40db55
call ebx
push 0x40496c
call ebp
mov eax, dword [0x403634]
test eax, eax
je 0x40db6c
push eax
push 0x419be8
call fcn.0040be07
add esp, 8
push 0x419be8
call edi
mov esi, eax
test esi, esi
jne 0x40db82
call ebx
push 0x404954
call ebp
mov eax, dword [0x403648]
test eax, eax
je 0x40db9a
push eax
call edi
mov edi, eax
test edi, edi
mov dword [esp + 0x10], edi
jne 0x40dba7
jmp 0x40db9e
mov edi, dword [esp + 0x10]
push 0x40493c
call ebp
call ebx
push esi
call fcn.0040ff00
push 0x404920
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov ebp, dword [esp + 0x14]
test ebp, ebp
mov dword [0x419bdc], eax
je 0x40df3f
test esi, esi
je 0x40df3f
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 0x40df26
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.00411a20
mov dword [edx + 0xa8], 0x405840
mov dword [edx + 0xac], 0x40da00
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.0040ee10
mov dword [edx + 0x88], fcn.0040ec60
mov dword [edx + 0x8c], 0x40f010
mov dword [edx + 0x90], 0x40f080
mov dword [edx + 0x94], 0x406f90
mov dword [edx + 0xc8], fcn.0040ebd0
mov dword [edx + 0xcc], fcn.0040ea80
mov dword [edx + 0x74], 0x406c00
mov edx, dword [esp + 0x14]
push 0x404910
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40df13
call eax
mov ecx, dword [0x419be0]
mov dword [ecx + 0x64], eax
call fcn.0040e4f0
mov edx, dword [0x419be0]
mov dword [edx + 0x80], eax
mov ecx, dword [edx + 0x64]
test ecx, ecx
je 0x40df19
test eax, eax
je 0x40df19
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 0x40df13
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.0040da40
mov dword [esp + 0x91e], eax
mov eax, dword [0x419be0]
push eax
call fcn.0040e4e0
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], 0x40d9d0
call fcn.0040ee10
mov ecx, dword [0x419be0]
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x40def6
lea edi, [ecx + 0x100]
mov ebx, eax
mov eax, dword [edi]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x40def0
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 0x40ded4
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 0x40df2d
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 0x40df4c
mov ebp, dword [esp + 0xd38]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
test edi, edi
je 0x40df53
push edi
call esi
push ebp
call fcn.0040fed0
call fcn.0040e110
pop edi
pop esi
pop ebp
pop ebx
xor eax, eax
add esp, 0xd24
ret 0x10