Function at 0x4314b8
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff58
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xa8], edx
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x18], edx
mov esi, dword [0x4339fc]
xor eax, eax
push ebp
push 0x431931
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x44]
xor ecx, ecx
mov edx, 0x28
call fcn.004032fc
mov eax, dword [0x434660]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x40], 0x4310c4
mov eax, 0x431940
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x44]
push eax
call sub.user32.dll_RegisterClassA
push 0x80000
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [0x434660]
push eax
push 0
mov ecx, 0x431954
mov edx, 0x431940
xor eax, eax
call fcn.004068f4
mov edx, dword [0x433bd4]
mov dword [edx], eax
push 0
mov eax, dword [0x433bd4]
mov eax, dword [eax]
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x433a64]
cmp dword [eax], 6
jl 0x4315d7
push 0x431958
call sub.kernel32.dll_LoadLibraryA
mov ebx, eax
test ebx, ebx
je 0x4315d7
push 0x431964
push ebx
call sub.kernel32.dll_GetProcAddress_1
mov edi, eax
mov dword [ebp - 0xc], edi
test edi, edi
je 0x4315d1
push 1
push 0x1400
call dword [ebp - 0xc]
test eax, eax
jne 0x4315d1
call sub.kernel32.dll_GetLastError
mov dword [ebp - 0x90], eax
mov byte [ebp - 0x8c], 0
lea edx, [ebp - 0x90]
xor ecx, ecx
mov eax, 0x431988
call fcn.0042c774
push ebx
call sub.kernel32.dll_FreeLibrary_1
mov dl, 1
mov eax, dword [0x42e3c8]
call fcn.00430108
mov edx, dword [0x433a18]
mov dword [edx], eax
mov dl, 1
mov eax, dword [0x413768]
call fcn.004038a0
mov edx, dword [0x433c00]
mov dword [edx], eax
mov dl, 1
mov eax, dword [0x413768]
call fcn.004038a0
mov edx, dword [0x4339f0]
mov dword [edx], eax
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0xffffffff
mov dword [esi + 8], 0xffffffff
mov dword [esi + 0xc], 0xffffffff
mov dword [esi + 0x10], 0xffffffff
mov dword [esi + 0x14], 0xffffffff
mov dword [esi + 0x18], 0xffffffff
mov dword [esi + 0x1c], 0xffffffff
mov dword [esi + 0xf0], 0xffffffff
lea edx, [ebp - 0x94]
xor eax, eax
call fcn.00403120
mov eax, dword [ebp - 0x94]
lea edx, [ebp - 0x18]
call fcn.0040a894
lea eax, [ebp - 0x9c]
mov ecx, 0x4319b4
mov edx, dword [ebp - 0x18]
call fcn.004049ac
mov eax, dword [ebp - 0x9c]
lea ecx, [ebp - 0x98]
mov edx, 0x4319d8
call fcn.0042b7cc
mov edx, dword [ebp - 0x98]
mov eax, dword [0x433ae0]
call fcn.004046f4
mov eax, dword [0x433aa8]
mov ecx, 0x4319ec
mov edx, dword [ebp - 0x18]
call fcn.004049ac
mov eax, dword [0x4339cc]
mov ecx, 0x431a04
mov edx, dword [ebp - 0x18]
call fcn.004049ac
xor eax, eax
mov dword [ebp - 0x14], eax
push 0x431a14
call sub.kernel32.dll_LoadLibraryA
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x431776
xor eax, eax
push ebp
push 0x43176f
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x431a24
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov ebx, eax
mov dword [ebp - 8], ebx
test ebx, ebx
je 0x431758
lea eax, [ebp - 0x88]
xor ecx, ecx
mov edx, 0x40
call fcn.004032fc
mov dword [ebp - 0x88], 0x40
lea eax, [ebp - 0x88]
push eax
call dword [ebp - 8]
test eax, eax
je 0x431758
push 0
push 0x400
push 0
push 0x400
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
call fcn.0040534c
call fcn.0040534c
mov dword [ebp - 0x14], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x431776
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_FreeLibrary_1
ret
mov ecx, dword [0x433aa8]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x41e870]
call fcn.0041e920
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0xd], 0
xor eax, eax
push ebp
push 0x431895
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
lea eax, [ebp - 0xa0]
push eax
mov ecx, 0x431a44
mov edx, 0x431a58
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xa0]
mov edx, dword [0x433ae0]
mov edx, dword [edx]
call fcn.00404aac
je 0x43180c
mov eax, 0x431a68
call fcn.0042c778
mov byte [ebp - 0xd], 1
mov eax, dword [0x433ae0]
mov eax, dword [eax]
push eax
mov ecx, 0x431a44
mov edx, 0x431a58
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax]
call dword [ebx + 4]
mov al, byte [ebp - 0xd]
push eax
mov ecx, 0x431a88
mov edx, 0x431a9c
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax]
call dword [ebx + 0x14]
push 0
mov ecx, 0x431ab0
mov edx, 0x431a9c
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax]
call dword [ebx + 8]
cmp eax, dword [ebp - 0x14]
je 0x43185f
mov eax, 0x431ac0
call fcn.0042c778
mov byte [ebp - 0xd], 1
mov eax, dword [ebp - 0x14]
push eax
mov ecx, 0x431ab0
mov edx, 0x431a9c
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov al, byte [ebp - 0xd]
push eax
mov ecx, 0x431a88
mov edx, 0x431a9c
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax]
call dword [ebx + 0x14]
cmp byte [ebp - 0xd], 0
jne 0x43188b
push 0
mov ecx, 0x431a88
mov edx, 0x431a9c
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax]
call dword [ebx + 0x10]
test al, al
je 0x43188b
mov eax, 0x431a88
call fcn.0042c778
mov byte [ebp - 0xd], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x43189f
cmp byte [ebp - 0xd], 0
je 0x4318b1
mov eax, dword [0x4339cc]
mov eax, dword [eax]
call fcn.0040a82c
mov eax, dword [ebp - 0x1c]
call fcn.004038d0
call fcn.0042b9d8
mov edx, dword [0x433c48]
mov byte [edx], al
lea ecx, [ebp - 0xa8]
mov eax, dword [0x433c48]
mov al, byte [eax]
mov dl, 1
call fcn.0040a64c
mov ecx, dword [ebp - 0xa8]
lea eax, [ebp - 0xa4]
mov edx, 0x431ae4
call fcn.004049ac
mov eax, dword [ebp - 0xa4]
call fcn.0042c778
mov eax, dword [0x433bc0]
mov byte [eax], 1
mov eax, dword [0x433a40]
mov byte [eax], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x431938
lea eax, [ebp - 0xa8]
mov edx, 6
call fcn.004046c4
lea eax, [ebp - 0x18]
call fcn.004046a0
ret