Function at 0x48007c
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff88
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
test eax, eax
je 0x4800ad
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x4800b8
xor edx, edx
mov dword [eax], edx
xor eax, eax
push ebp
push 0x480466
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov esi, eax
xor eax, eax
mov edi, eax
xor eax, eax
mov dword [ebp - 0x1c], eax
xor eax, eax
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov edx, 0x8000
mov eax, 0x480480
call fcn.0040e20c
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x480437
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0x14], 0
je 0x480191
mov edx, 0x8000
mov eax, 0x480498
call fcn.0040e20c
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x14], 0
je 0x480191
cmp dword [ebp - 0x18], 0
je 0x480191
push 0x4804a4
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov esi, eax
push 0x4804b0
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edi, eax
push 0x4804bc
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [ebp - 0x1c], eax
push 0x4804cc
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
push 0x4804e0
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [ebp - 0x20], eax
push 0x4804f4
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov dword [ebp - 0x24], eax
test esi, esi
je 0x4801af
test edi, edi
je 0x4801af
cmp dword [ebp - 0x1c], 0
je 0x4801af
test ebx, ebx
je 0x4801af
cmp dword [ebp - 0x20], 0
je 0x4801af
cmp dword [ebp - 0x24], 0
jne 0x4801f1
xor eax, eax
mov esi, eax
mov byte [ebp - 0xd], 0
lea edx, [ebp - 0x6c]
mov eax, dword [0x4b4a30]
call fcn.00406138
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0xc]
call fcn.00404190
lea edx, [ebp - 0x70]
mov eax, dword [0x4b4a30]
call fcn.00406138
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 8]
call fcn.00404190
call fcn.00403b84
jmp 0x48043e
call fcn.0047e838
mov word [ebp - 0x3e], ax
xor eax, eax
push ebp
push 0x480404
push dword fs:[eax]
mov dword fs:[eax], esp
mov ax, 0x133f
call fcn.00402b34
xor eax, eax
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0xd], 0
mov byte [ebp - 0x31], 0
cmp dword [ebp - 4], 0
jne 0x480267
mov byte [ebp - 0xd], 0
lea edx, [ebp - 0x74]
mov eax, dword [0x4b4a30]
call fcn.00406138
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0xc]
call fcn.00404190
lea edx, [ebp - 0x78]
mov eax, dword [0x4b4a30]
call fcn.00406138
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 8]
call fcn.00404190
call fcn.00403b84
call fcn.00403b84
jmp 0x48043e
lea eax, [ebp - 0x66]
mov edx, 0x28
call fcn.00488e98
mov word [ebp - 0x66], 0x28
mov word [ebp - 0x64], 1
mov dword [ebp - 0x62], 0x24
mov byte [ebp - 0x5e], 0
mov byte [ebp - 0x5d], 0x18
mov byte [ebp - 0x4f], 0x20
mov byte [ebp - 0x4c], 0
mov eax, dword [ebp - 4]
push eax
call sub.user32.dll_GetDC
mov dword [ebp - 0x30], eax
xor eax, eax
push ebp
push 0x4803e6
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x66]
push eax
mov eax, dword [ebp - 0x30]
push eax
call sub.gdi32.dll_ChoosePixelFormat
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
jne 0x4802d1
mov eax, 0x48050c
call fcn.00480014
lea eax, [ebp - 0x66]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x30]
push eax
call sub.gdi32.dll_SetPixelFormat
test eax, eax
jne 0x4802f0
mov eax, 0x480528
call fcn.00480014
mov eax, dword [ebp - 0x30]
push eax
call ebx
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jne 0x480309
mov eax, 0x480540
call fcn.00480014
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x30]
push eax
call dword [ebp - 0x24]
test eax, eax
jne 0x480322
mov eax, 0x48055c
call fcn.00480014
push 0x1f02
call esi
mov ebx, eax
test ebx, ebx
je 0x48033b
lea edx, [ebp - 0x38]
mov eax, ebx
call fcn.00486f8c
jmp 0x48035d
mov byte [ebp - 0x31], 1
call edi
mov ebx, eax
test ebx, ebx
je 0x48035d
push ebx
call dword [ebp - 0x1c]
mov edx, eax
lea eax, [ebp - 0x38]
call fcn.00404334
lea eax, [ebp - 0x3c]
call fcn.0040413c
push 0x1f00
call esi
mov ebx, eax
test ebx, ebx
je 0x480376
lea edx, [ebp - 0x3c]
mov eax, ebx
call fcn.00486f8c
jmp 0x4803a4
mov byte [ebp - 0x31], 1
call edi
mov ebx, eax
test ebx, ebx
je 0x4803a4
push ebx
call dword [ebp - 0x1c]
mov edx, eax
lea eax, [ebp - 0x3c]
call fcn.00404334
call fcn.00403b84
call fcn.00403b84
call fcn.00403b84
jmp 0x48043e
mov al, byte [ebp - 0x31]
xor al, 1
mov byte [ebp - 0xd], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x38]
call fcn.00404190
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x3c]
call fcn.00404190
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4803ed
push 0
mov eax, dword [ebp - 0x30]
push eax
call dword [ebp - 0x24]
cmp dword [ebp - 0x2c], 0
je 0x4803e5
mov eax, dword [ebp - 0x2c]
push eax
call dword [ebp - 0x20]
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x48046d
lea eax, [ebp - 0x78]
mov edx, 4
call fcn.00404160
lea eax, [ebp - 0x3c]
mov edx, 2
call fcn.00404160
ret