Function at 0x405a50
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x84
mov eax, dword [0x427e50]
xor eax, esp
mov dword [esp + 0x80], eax
fldz
push ebx
fstp qword [esp + 0x20]
xor eax, eax
fld1
push esi
push edi
xor edi, edi
mov word [esp + 0x10], ax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], edi
mov byte [esp + 0x8b], al
xor ecx, ecx
lea ebx, [eax + 1]
dec dword [esp + 0x18]
fld qword [0x425338]
fadd st(1)
mov esi, 0x1a
fstp qword [0x425338]
mov edx, dword [esp + 0x18]
sub edx, 0x51bed068
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fsub qword [0x425338]
fmul dword [0x425518]
movsx eax, byte [ecx + 0x4256c0]
cdq
idiv esi
fstp dword [0x425518]
add dl, 0x61
mov byte [esp + ecx + 0x84], dl
add ecx, ebx
cmp ecx, 7
jne 0x405a96
push 0xbb6
fstp st(0)
push 0x4256c0
call fcn.004020f0
add esp, 8
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
fldz
mov dword [0x429638], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x38], 0x30
mov dword [esp + 0x3c], 3
mov dword [esp + 0x40], 0x404fc0
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
fstp qword [esp + 0x30]
movzx edx, byte [esi + 0x17]
movzx ecx, byte [esi + 0x16]
push edi
push edx
push ecx
mov ecx, dword [esi + 0x1e]
xor eax, eax
push 0x30000
mov word [esp + 0x40], ax
mov eax, dword [esi + 0x22]
push ebx
add eax, esi
push ecx
push eax
call dword [sym.imp.USER32.dll_CreateIconFromResourceEx]
mov edx, dword [esp + 0x24]
push 0x7f00
mov dword [esp + 0x54], eax
sub dword [esp + 0x18], edx
push edi
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [esp + 0x54], eax
add dword [esp + 0x18], ebx
mov ax, word [esp + 0x10]
mov edx, dword [esp + 0x18]
movsx ecx, ax
mov eax, 0xffffffff
add dword [esp + 0x10], eax
lea ecx, [ecx + edx + 0x58edde92]
cmp ecx, 0xa314f41a
jge 0x405bca
mov dx, word [esp + 0x10]
movsx ecx, dx
sub ecx, 0x6cc547a2
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fmul qword [0x427398]
fstp qword [0x427398]
add dword [esp + 0x10], ebx
lea edx, [esp + 0x84]
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], 6
mov dword [esp + 0x5c], edi
add dword [esp + 0x10], eax
add dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
sub ecx, edx
mov dx, word [esp + 0x10]
add dword [esp + 0x14], eax
movsx edx, dx
cmp edx, ecx
jge 0x405c1b
movzx eax, word [esp + 0x10]
mov ecx, dword [0x4255a0]
add eax, ecx
mov word [esp + 0x10], ax
add dword [0x4255a0], ebx
mov dx, word [esp + 0x10]
movsx eax, dx
add eax, 0x28145386
mov dword [esp + 0x18], eax
mov dword [esp + 0x64], edi
fild dword [esp + 0x18]
fld qword [esp + 0x28]
fsub qword [0x420780]
fucompp
fnstsw ax
fld qword [esp + 0x28]
fsub qword [0x420378]
fstp qword [esp + 0x28]
test ah, 0x44
jp 0x405c7d
mov cx, word [0x425468]
mov edx, dword [esp + 0x14]
movsx eax, cx
add edx, eax
movzx eax, word [esp + 0x10]
imul edx, eax
mov word [esp + 0x10], dx
add word [0x425468], bx
add dword [esp + 0x14], ebx
push ebx
call dword [sym.imp.GDI32.dll_GetStockObject]
lea ecx, [esp + 0x38]
push ecx
mov dword [esp + 0x5c], eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
fldz
push 0xbb6
fstp qword [esp + 0x1c]
push edi
mov dword [esp + 0x20], edi
push esi
call fcn.0040be10
push esi
call fcn.0040bd7b
fld dword [0x4254d0]
fld dword [0x4262f0]
add esp, 0x10
fcompp
fnstsw ax
fld dword [0x4254d0]
fadd qword [0x420378]
fstp dword [0x4254d0]
test ah, 5
jp 0x405cef
mov dx, word [0x42627c]
movsx eax, dx
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fstp qword [esp + 0x18]
push 0x15
push str.13C
call fcn.004020f0
mov ecx, dword [0x429638]
add esp, 8
push edi
push ecx
push edi
push edi
push edi
push connect
push edi
push connect
push 0xc80000
mov esi, eax
push esi
lea edx, [esp + 0xac]
push edx
push edi
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [0x427d44]
mov edx, dword [esp + 0x24]
mov edi, eax
mov eax, 0xa504ab07
sub eax, ecx
add edx, eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
xor eax, eax
push esi
fmul dword [0x42534c]
fstp dword [0x42534c]
mov dword [esi], eax
fldz
mov dword [esi + 4], eax
mov dword [esi + 8], eax
fstp qword [esp + 0x1c]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esp + 0x1c], eax
mov byte [esi + 0x14], al
call fcn.0040bd7b
fld dword [0x4254d0]
fld dword [0x4262f0]
add esp, 4
fcompp
fnstsw ax
fld dword [0x4254d0]
fadd qword [0x420378]
fstp dword [0x4254d0]
test ah, 5
jp 0x405db6
mov ax, word [0x42627c]
movsx ecx, ax
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fstp qword [esp + 0x18]
mov edx, dword [0x4272c4]
mov eax, 0x1a4d13b4
sub eax, edx
mov dword [esp + 0x18], eax
dec dword [0x4272c4]
test edi, edi
je 0x405ed3
push ebx
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
push edi
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ebx, dword [sym.imp.USER32.dll_GetMessageA]
push 0
push 0
push 0
lea ecx, [esp + 0x74]
push ecx
call ebx
test eax, eax
je 0x405eba
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov esi, dword [sym.imp.USER32.dll_DispatchMessageA]
mov edx, dword [0x4272d8]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fld qword [esp + 0x28]
fadd qword [0x420778]
fsubp st(1)
fsubp st(1)
call fcn.0040bcd0
mov dword [0x4272d8], eax
fld qword [esp + 0x28]
fadd qword [0x420378]
lea ecx, [esp + 0x68]
push ecx
fstp qword [esp + 0x2c]
call edi
mov edx, dword [esp + 0x24]
mov eax, 0xc650aa20
sub eax, edx
add eax, dword [0x425604]
dec dword [0x425604]
cmp eax, 0x9f2895d6
jle 0x405e7e
mov ecx, 0xffff813a
mov word [0x425688], cx
jmp 0x405e9e
mov dx, word [0x42783c]
movzx ecx, word [0x426ea4]
movsx eax, dx
sub ecx, eax
sub ecx, 0x62eb133
mov word [0x426ea4], cx
lea edx, [esp + 0x68]
push edx
call esi
push 0
push 0
push 0
lea eax, [esp + 0x74]
push eax
call ebx
test eax, eax
jne 0x405e0b
mov eax, dword [esp + 0x70]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x80]
xor ecx, esp
call fcn.0040c345
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0040c345
mov esp, ebp
pop ebp
ret