Function at 0x509038
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov esi, 0x55a9e4
cmp dword [0x55ac1c], 0
je 0x50906c
call fcn.00508e50
test eax, eax
jne 0x509065
call fcn.00508ff4
jmp 0x5094f6
xor eax, eax
mov dword [0x55ac1c], eax
xor edx, edx
mov dword [0x58ac20], edx
mov eax, dword [esi]
test eax, eax
je 0x5090a8
push 0x7c
push eax
call sub.USER32.dll_KillTimer
push 0x7d
push dword [esi]
call sub.USER32.dll_KillTimer
test ebx, ebx
jne 0x509116
mov dword [0x58ac20], 0xfa
push 0
push dword [esi]
call sub.USER32.dll_ShowWindow
jmp 0x509116
push 0x7c
push dword [esi]
call sub.USER32.dll_KillTimer
push 0x7d
push dword [esi]
call sub.USER32.dll_KillTimer
test ebx, ebx
jne 0x5090c8
mov dword [0x58ac20], 0xfa
push 0
push dword [0x55b3c4]
push 0
push 0
push dword [0x55ac08]
push dword [0x55ac0c]
push dword [0x55ac14]
push dword [0x55ac10]
push 0x8a800000
push 0x55ac20
push str.mIRCInfo32
push 0x80
call sub.USER32.dll_CreateWindowExA
mov dword [esi], eax
cmp dword [esi], 0
jne 0x509116
call fcn.00508ff4
jmp 0x5094f6
cmp ebx, 2
jne 0x50912d
mov eax, dword [0x55a3ec]
mov dword [0x55a9e8], eax
push eax
call sub.USER32.dll_UpdateWindow
jmp 0x50913d
mov eax, dword [0x55a6ec]
mov dword [0x55a9e8], eax
push eax
call sub.USER32.dll_UpdateWindow
mov eax, dword [ebp + 0xc]
mov dword [0x55a9f0], eax
mov dword [0x58ac44], eax
test ebx, ebx
jne 0x5091c6
cmp dword [0x58ac44], 0
jne 0x50917c
cmp dword [0x54e370], 0
jne 0x509172
cmp dword [0x54e374], 0
jne 0x509172
cmp dword [0x54e380], 0
je 0x50917c
mov dword [0x58ac44], 1
cmp dword [0x58ac44], 0x10
jne 0x509198
cmp dword [0x551548], 0
je 0x509198
mov dword [0x58ac44], 0x11
push 0x55a9f4
mov edx, dword [0x58ac44]
add edx, 0x14b5
push edx
call fcn.0041c35b
cmp byte [0x55a9f4], 0
jne 0x5092d7
call fcn.00508ff4
jmp 0x5094f6
cmp ebx, 1
jne 0x509290
push 0x55a9f4
mov ecx, dword [0x55ac18]
add ecx, 0x14df
push ecx
call fcn.0041c35b
cmp byte [0x55a9f4], 0
jne 0x509219
xor eax, eax
mov dword [0x55ac18], eax
push 0x55a9f4
add eax, 0x14df
push eax
call fcn.0041c35b
cmp byte [0x55a9f4], 0
jne 0x509219
call fcn.00508ff4
jmp 0x5094f6
mov edx, dword [0x55ac18]
add edx, 0x14df
cmp edx, 0x14f7
jne 0x509288
mov ecx, 0x5573c8
test ecx, ecx
jne 0x509246
call fcn.00508ff4
inc dword [0x55ac18]
jmp 0x5094f6
push 0x5573c8
push 0x55a9f4
push 0x57f8f2
call sub.USER32.dll_wsprintfA
add esp, 0xc
push esi
push edi
mov esi, 0x55a9f4
mov edi, 0x57f8f2
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
inc dword [0x55ac18]
jmp 0x5092d7
cmp ebx, 2
jne 0x5094f6
mov eax, dword [ebp + 0x14]
push esi
push edi
mov esi, 0x55a9f4
mov edi, eax
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
cmp byte [0x55a9f4], 0
jne 0x5092d7
call fcn.00508ff4
jmp 0x5094f6
push dword [esi]
call sub.USER32.dll_GetDC
mov dword [0x58ac40], eax
cmp dword [0x58ac40], 0
jne 0x5092f6
call fcn.00508ff4
jmp 0x5094f6
push 0xc
call sub.GDI32.dll_GetStockObject
push eax
push dword [0x58ac40]
call sub.GDI32.dll_SelectObject
mov dword [0x58ac24], eax
push esi
push edi
mov esi, 0x55aaf8
mov edi, 0x55a9f4
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push 0xf
push 0x55aaf8
call fcn.004fec28
push 0x58ac38
push 0x55aaf8
call fcn.005395b8
pop ecx
push eax
push 0x55aaf8
push dword [0x58ac40]
call sub.GDI32.dll_GetTextExtentPointA
push dword [0x58ac24]
push dword [0x58ac40]
call sub.GDI32.dll_SelectObject
push dword [0x58ac40]
push dword [esi]
call sub.USER32.dll_ReleaseDC
mov eax, dword [0x58ac38]
add eax, 5
mov dword [0x55ac0c], eax
mov edx, dword [0x58ac3c]
add edx, 2
mov dword [0x55ac08], edx
cmp ebx, 2
jne 0x5093e0
push 0x58ac28
push dword [0x55b3c8]
call sub.USER32.dll_GetWindowRect
movzx eax, di
mov dword [0x55ac10], eax
shr edi, 0x10
and di, 0xffff
movzx edx, di
mov dword [0x55ac14], edx
mov edx, dword [0x58ac28]
cmp eax, edx
jge 0x50943f
mov dword [0x55ac10], edx
jmp 0x50943f
mov eax, dword [0x55ac0c]
mov ecx, 3
cdq
idiv ecx
movzx edx, di
sub edx, eax
mov dword [0x55ac10], edx
shr edi, 0x10
and di, 0xffff
movzx eax, di
add eax, 0x11
mov dword [0x55ac14], eax
push 0x58ac28
push dword [0x55a6ec]
call sub.USER32.dll_GetWindowRect
mov eax, dword [0x58ac28]
add dword [0x55ac10], eax
mov edx, dword [0x58ac2c]
add dword [0x55ac14], edx
cmp eax, dword [0x55ac10]
jle 0x50943f
mov dword [0x55ac10], eax
push 0x58ac28
push dword [0x55b3c8]
call sub.USER32.dll_GetWindowRect
mov edx, dword [0x55ac10]
mov ecx, dword [0x55ac0c]
add edx, ecx
mov eax, dword [0x58ac30]
cmp edx, eax
jle 0x509471
add eax, 0xfffffffb
sub edx, eax
sub dword [0x55ac10], edx
cmp dword [0x58ac20], 0
je 0x5094af
push 0x90
mov eax, dword [0x55ac08]
inc eax
push eax
push ecx
push dword [0x55ac14]
push dword [0x55ac10]
push 1
push dword [esi]
call sub.USER32.dll_SetWindowPos
push 0
push dword [0x58ac20]
push 0x7d
push dword [esi]
call sub.USER32.dll_SetTimer
jmp 0x5094ef
push 0x50
mov edx, dword [0x55ac08]
inc edx
push edx
push dword [0x55ac0c]
push dword [0x55ac14]
push dword [0x55ac10]
push 0xffffffffffffffff
push dword [esi]
call sub.USER32.dll_SetWindowPos
push 1
push 0
push dword [esi]
call sub.USER32.dll_InvalidateRect
push 0
push 0x1388
push 0x7c
push dword [esi]
call sub.USER32.dll_SetTimer
push dword [esi]
call sub.USER32.dll_UpdateWindow
pop edi
pop esi
pop ebx
pop ebp
ret 0x10