Function at 0x407352
Capabilities:
Extract resource via kernel32 functions
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
mov eax, dword [0x5b1074]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x114]
push edi
mov edi, dword [ebp + 0x10]
push edi
mov dword [ebp - 0x128], esi
mov dword [ebp - 0x118], edi
call fcn.00407d97
push ecx
xor ebx, ebx
lea ecx, [ebp - 0x114]
inc ebx
push ebx
call fcn.00407bc4
test eax, eax
je 0x407476
push dword [ebp - 0x114]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push ecx
mov ecx, esp
push str.__id
call fcn.0040941c
lea edx, [ebp - 0x114]
lea ecx, [ebp - 0x110]
call fcn.00407292
pop ecx
push eax
mov ecx, 0x5db108
call fcn.00407fbd
mov ecx, dword [ebp - 0x110]
add ecx, 0xfffffff0
call fcn.00409cc2
push ecx
mov ecx, esp
push str.__wd
call fcn.0040941c
lea edx, [ebp - 0x114]
lea ecx, [ebp - 0x11c]
call fcn.00407292
mov eax, dword [ebp - 0x11c]
pop ecx
cmp dword [eax - 4], ebx
jle 0x407420
push dword [eax - 0xc]
lea ecx, [ebp - 0x11c]
call fcn.00409175
mov eax, dword [ebp - 0x11c]
push eax
call fcn.0051f1a5
mov ecx, esp
mov dword [0x5c9bf8], eax
push str.__outfile
call fcn.0040941c
lea edx, [ebp - 0x114]
lea ecx, [ebp - 0x110]
call fcn.00407292
pop ecx
push eax
mov ecx, 0x5db104
call fcn.00407fbd
mov ecx, dword [ebp - 0x110]
lea ecx, [ecx - 0x10]
call fcn.00409cc2
mov ecx, dword [ebp - 0x11c]
mov dword [0x5c9bf4], ebx
lea ecx, [ecx - 0x10]
call fcn.00409cc2
mov dword [0x5c9bf0], esi
call fcn.00407229
test eax, eax
je 0x40748c
xor esi, esi
jmp 0x40784b
push str.XDPdfScreen
push 0x5883bc
push 0x63
mov ebx, 0x5ca0e8
push ebx
call fcn.00408e72
push str.XDPdfScreenClass
push 0x5883bc
push 0x63
push 0x5ca020
call fcn.00408e72
add esp, 0x20
xor eax, eax
push eax
push ebx
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x4074d2
or esi, 0xffffffff
jmp 0x40784b
xor ebx, ebx
lea ecx, [ebp - 0x114]
push ebx
push str.fullscreeenmode
call fcn.00407b8a
mov ecx, dword [0x5c9e0c]
cmp eax, 0xffffffff
push 1
pop eax
cmovne ecx, eax
push ebx
mov dword [0x5c9e0c], ecx
call dword [sym.imp.ole32.dll_CoInitialize]
call fcn.00408e1d
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_DefWindowProcW]
sub esp, 0xc
call fcn.00408da8
push 0x83e
push 0x72
push dword [0x5c9bf0]
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov ebx, eax
test ebx, ebx
je 0x40759e
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x110], eax
test eax, eax
je 0x40759e
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov edi, eax
push edi
push 0x22
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push dword [ebp - 0x110]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push edi
push eax
push esi
call fcn.00512bc0
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_FreeResource]
push edi
push esi
push ecx
mov ecx, esp
push 0x5884e4
call fcn.0040941c
call fcn.004328e0
mov ecx, eax
call fcn.00432960
mov edi, dword [ebp - 0x118]
cmp dword [0x5c9bf4], 0
jne 0x4077ff
xor eax, eax
push eax
push eax
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x120], eax
call fcn.00408318
mov esi, eax
push 0x20
pop eax
mov word [ebp - 0x11c], ax
lea eax, [ebp - 0x11c]
push eax
push edi
mov dword [ebp - 0x124], esi
call fcn.005308d1
pop ecx
pop ecx
mov edi, eax
lea ecx, [ebp - 0x118]
push edi
call fcn.00407d97
push eax
push esi
lea ecx, [ebp - 0x124]
call fcn.004083ca
mov ecx, dword [ebp - 0x118]
add ecx, 0xfffffff0
call fcn.00409cc2
xor ebx, ebx
mov esi, 0x5c9e10
jmp 0x4077f2
test ebx, ebx
jne 0x407761
test edi, edi
jne 0x407626
xor eax, eax
jmp 0x40765c
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40762b
sub ecx, edx
lea esi, [ecx + 1]
cmp esi, 0x3fffffff
jle 0x407643
xor eax, eax
jmp 0x407657
lea eax, [esi + esi]
call fcn.0050ff90
mov ecx, esp
mov edx, edi
push 3
push esi
call fcn.00408c39
mov esi, 0x5c9e10
push eax
push 0x5883bc
push 0x104
push esi
call fcn.00408e72
add esp, 0x10
push 0x58840c
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x4077b3
push eax
push 0x588348
lea ecx, [ebp - 0x114]
call fcn.00407b8a
inc eax
lea ecx, [ebp - 0x114]
push eax
lea eax, [ebp - 0x118]
push eax
call fcn.00407a70
push eax
push dword [ebp - 0x124]
lea ecx, [ebp - 0x124]
call fcn.004083ca
mov ecx, dword [ebp - 0x118]
lea ecx, [ecx - 0x10]
call fcn.00409cc2
cmp dword [ebp - 0x120], 2
jb 0x407725
push 0x58840c
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x407725
mov eax, dword [ebp - 0x124]
lea ecx, [ebp - 0x124]
push dword [eax]
lea eax, [ebp - 0x118]
push eax
call fcn.00407e40
mov eax, dword [ebp - 0x124]
mov ebx, 0x5db104
mov ecx, ebx
mov eax, dword [eax]
add eax, 8
push eax
call fcn.00407fbd
push 0x5884e4
push 0x58834c
mov ecx, ebx
call fcn.00407bef
push 0x588424
push 0x5883bc
push 0x104
push esi
call fcn.00408e72
add esp, 0x10
lea ecx, [ebp - 0x124]
call fcn.0040809c
xor eax, eax
push 0xc
inc eax
push eax
push dword [ebp - 0x124]
call fcn.004038b8
add esp, 0xc
jmp 0x40781b
xor eax, eax
inc eax
cmp ebx, eax
jne 0x4077b3
and dword [ebp - 0x110], 0
lea eax, [ebp - 0x110]
push eax
push 0x588420
push edi
call fcn.00408c22
push 0x105
lea eax, [ebp - 0x10c]
push 0
push eax
call fcn.00516180
push dword [ebp - 0x110]
lea eax, [ebp - 0x10c]
push 0x588420
push 0x104
push eax
call fcn.00408be0
add esp, 0x28
lea eax, [ebp - 0x11c]
push eax
push 0
call fcn.005308d1
pop ecx
pop ecx
mov edi, eax
lea ecx, [ebp - 0x118]
push edi
call fcn.00407d97
push eax
push dword [ebp - 0x124]
lea ecx, [ebp - 0x124]
call fcn.004083ca
mov ecx, dword [ebp - 0x118]
lea ecx, [ecx - 0x10]
call fcn.00409cc2
inc ebx
test edi, edi
jne 0x407616
jmp 0x4076c9
push 0x588438
push 0x5883bc
push 0x104
push 0x5c9e10
call fcn.00408e72
add esp, 0x10
push 0x6b
push dword [ebp - 0x128]
call dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [0x5c9e08], eax
call fcn.0040711c
mov esi, eax
mov eax, dword [0x5c9e08]
test eax, eax
je 0x407845
push eax
call dword [sym.imp.USER32.dll_DestroyCursor]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 0x114]
add ecx, 0xfffffff0
call fcn.00409cc2
mov eax, esi
lea esp, [ebp - 0x134]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050eff9
mov esp, ebp
pop ebp
ret 0x10