Function at 0x44da44
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff18
push ebx
push esi
push edi
mov ebx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, 0x20e2
jg 0x44da79
je 0x44dab3
sub eax, 0x1062
je 0x44da94
sub eax, 0x104e
je 0x44db03
jmp 0x44e5dd
sub eax, 0x4090
je 0x44e0d1
sub eax, 0x4032
je 0x44e5c8
jmp 0x44e5dd
mov eax, dword [0x52c904]
test eax, eax
je 0x44daac
cmp eax, dword [ebp + 0x18]
jne 0x44daac
mov eax, 1
jmp 0x44e5ef
xor eax, eax
jmp 0x44e5ef
mov eax, dword [0x52c904]
test eax, eax
je 0x44e5ed
cmp eax, dword [ebp + 0x18]
jne 0x44e5ed
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0x1c], ecx
xor eax, eax
mov dword [ebp - 0x18], eax
xor edx, edx
mov dword [ebp - 0x14], edx
push 0
push dword [ebp + 0xc]
push 0
push 0
push 0x11
lea ecx, [ebp - 0x20]
push ecx
push dword [0x52c90c]
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x44e5ef
cmp dword [0x52c904], 0
je 0x44e5ed
mov byte [0x54a4a7], 0
test esi, esi
je 0x44db36
push 0x3ec
push 0x104
push 0x54a4a7
push esi
push dword [0x52c90c]
call sub.USER32.dll_DdeQueryStringA
cmp byte [0x54a4a7], 0
je 0x44e5ed
push str.VERSION
push 0x54a4a7
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44db9a
push 0x532a24
push str.mIRC32__s
push 0x54a0c0
call sub.USER32.dll_wsprintfA
add esp, 0xc
push 0
push dword [ebp + 0xc]
push esi
push 0
push 0x54a0c0
call fcn.005183dc
pop ecx
inc eax
push eax
push 0x54a0c0
push dword [0x52c90c]
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x44e5ef
push str.INIFILE
push 0x54a4a7
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44dbe5
push 0x52ffb0
call fcn.005207ec
pop ecx
push 0
push dword [ebp + 0xc]
push esi
push 0
push 0x52ffb0
call fcn.005183dc
pop ecx
inc eax
push eax
push 0x52ffb0
push dword [0x52c90c]
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x44e5ef
push str.EXENAME
push 0x54a4a7
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44dc45
push 0x3e7
push 0x54a0c0
push dword [0x53741c]
call sub.KERNEL32.dll_GetModuleFileNameA
push 0x54a0c0
call fcn.005207ec
pop ecx
push 0
push dword [ebp + 0xc]
push esi
push 0
push 0x54a0c0
call fcn.005183dc
pop ecx
inc eax
push eax
push 0x54a0c0
push dword [0x52c90c]
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x44e5ef
push str.NICKNAME
push 0x54a4a7
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44dc97
push 0
push dword [ebp + 0xc]
push esi
push 0
imul eax, dword [0x533af8], 0x64
add eax, 0x533a30
push eax
call fcn.005183dc
pop ecx
inc eax
push eax
imul edx, dword [0x533af8], 0x64
add edx, 0x533a30
push edx
push dword [0x52c90c]
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x44e5ef
push str.SERVERPORT
push 0x54a4a7
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44dcf6
movzx ecx, word [0x533e1c]
push ecx
push 0x533db8
push str._s:_d
push 0x54a0c0
call sub.USER32.dll_wsprintfA
add esp, 0x10
push 0
push dword [ebp + 0xc]
push esi
push 0
push 0x54a0c0
call fcn.005183dc
pop ecx
inc eax
push eax
push 0x54a0c0
push dword [0x52c90c]
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x44e5ef
push str.SERVER
push 0x54a4a7
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44dd36
push 0
push dword [ebp + 0xc]
push esi
push 0
push 0x533db8
call fcn.005183dc
pop ecx
inc eax
push eax
push 0x533db8
push dword [0x52c90c]
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x44e5ef
push str.PORT
push 0x54a4a7
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44dd90
movzx eax, word [0x533e1c]
push eax
push 0x52cb73
push 0x54a0c0
call sub.USER32.dll_wsprintfA
add esp, 0xc
push 0
push dword [ebp + 0xc]
push esi
push 0
push 0x54a0c0
call fcn.005183dc
pop ecx
inc eax
push eax
push 0x54a0c0
push dword [0x52c90c]
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x44e5ef
push str.CONNECTED
push 0x54a4a7
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44de24
cmp dword [0x52b4d0], 0
je 0x44ddc4
push esi
mov esi, 0x52cb82
mov edi, 0x54a0c0
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
jmp 0x44ddfa
push 0
call fcn.0043d398
test eax, eax
jne 0x44dde8
push esi
mov esi, 0x52cb8e
mov edi, 0x54a0c0
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
jmp 0x44ddfa
push esi
mov esi, str.connected
mov edi, 0x54a0c0
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
push 0
push dword [ebp + 0xc]
push esi
push 0
push 0x54a0c0
call fcn.005183dc
pop ecx
inc eax
push eax
push 0x54a0c0
push dword [0x52c90c]
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x44e5ef
push str.CHANNELS
push 0x54a4a7
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44df2a
xor edi, edi
mov ebx, dword [0x537418]
test ebx, ebx
je 0x44de6e
cmp byte [ebx + 0x638], 1
jne 0x44de64
lea eax, [ebx + 4]
push eax
call fcn.005183dc
pop ecx
add eax, edi
add eax, 3
mov edi, eax
mov ebx, dword [ebx + 0x9a8]
test ebx, ebx
jne 0x44de4a
test edi, edi
jne 0x44de91
push 0
push dword [ebp + 0xc]
push esi
push 0
push 5
push 0x52cbb2
push dword [0x52c90c]
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x44e5ef
push edi
call fcn.00524378
pop ecx
mov edi, eax
test edi, edi
je 0x44e5ed
mov byte [edi], 0
mov ebx, dword [0x537418]
test ebx, ebx
je 0x44defd
cmp byte [ebx + 0x638], 1
jne 0x44def3
cmp byte [edi], 0
je 0x44decb
push 0x52cbb6
push edi
call fcn.00518300
add esp, 8
mov eax, dword [0x53742c]
test eax, eax
je 0x44dee6
cmp eax, dword [ebx]
jne 0x44dee6
push 0x52cbb9
push edi
call fcn.00518300
add esp, 8
lea edx, [ebx + 4]
push edx
push edi
call fcn.00518300
add esp, 8
mov ebx, dword [ebx + 0x9a8]
test ebx, ebx
jne 0x44deaf
push 0
push dword [ebp + 0xc]
push esi
push 0
push edi
call fcn.005183dc
pop ecx
inc eax
push eax
push edi
push dword [0x52c90c]
call sub.USER32.dll_DdeCreateDataHandle
mov ebx, eax
push edi
call fcn.00524270
pop ecx
mov eax, ebx
jmp 0x44e5ef
push str.USERS
push 0x54a4a7
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44e5ed
cmp dword [ebp + 0x18], 0
je 0x44e5ed
push 0x3ec
push 0x64
push 0x54a058
push dword [ebp + 0x18]
push dword [0x52c90c]
call sub.USER32.dll_DdeQueryStringA
cmp byte [0x54a058], 0
je 0x44e5ed
push 0x54a058
call fcn.0048f0e5
test al, al
je 0x44e5ed
push 0x54a058
call fcn.004f9bfc
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x44e5ed
mov edx, dword [ebp - 4]
cmp byte [edx + 0x638], 1
jne 0x44e5ed
xor edi, edi
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x608]
test ebx, ebx
je 0x44dfd3
push dword [ebx]
call fcn.005183dc
pop ecx
add eax, edi
add eax, 3
mov edi, eax
mov ebx, dword [ebx + 0x30]
test ebx, ebx
jne 0x44dfbd
push 0x54a058
call fcn.005183dc
pop ecx
add eax, edi
add eax, 2
push eax
call fcn.00524378
pop ecx
mov edi, eax
test edi, edi
je 0x44e5ed
push esi
push edi
mov esi, edi
mov edi, 0x54a058
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
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x608]
test ebx, ebx
je 0x44e09f
push 0x52cbc3
push edi
call fcn.00518300
add esp, 8
test byte [ebx + 0x18], 2
je 0x44e04d
push 0x52cbc6
push edi
call fcn.00518300
add esp, 8
jmp 0x44e08d
test byte [ebx + 0x18], 4
je 0x44e063
push 0x52cbc9
push edi
call fcn.00518300
add esp, 8
jmp 0x44e08d
test byte [ebx + 0x18], 8
je 0x44e079
push 0x52cbcc
push edi
call fcn.00518300
add esp, 8
jmp 0x44e08d
test byte [ebx + 0x18], 0x10
je 0x44e08d
push 0x52cbcf
push edi
call fcn.00518300
add esp, 8
push dword [ebx]
push edi
call fcn.00518300
add esp, 8
mov ebx, dword [ebx + 0x30]
test ebx, ebx
jne 0x44e029
push 0
push dword [ebp + 0xc]
push esi
push 0
push edi
call fcn.005183dc
pop ecx
inc eax
push eax
push edi
push dword [0x52c90c]
call sub.USER32.dll_DdeCreateDataHandle
mov ebx, eax
push edi
call fcn.00524270
pop ecx
mov eax, ebx
jmp 0x44e5ef
cmp dword [0x52c904], 0
je 0x44e5ba
mov byte [0x54a4a7], 0
test esi, esi
je 0x44e104
push 0x3ec
push 0x104
push 0x54a4a7
push esi
push dword [0x52c90c]
call sub.USER32.dll_DdeQueryStringA
cmp byte [0x54a4a7], 0
je 0x44e5ba
push str.COMMAND
push 0x54a4a7
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44e1b5
test ebx, ebx
je 0x44e1ab
lea edx, [ebp - 8]
push edx
push ebx
call sub.USER32.dll_DdeAccessData
mov esi, eax
test esi, esi
je 0x44e167
push esi
mov edi, esi
mov esi, 0x54a0c0
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 esi
jmp 0x44e16e
mov byte [0x54a0c0], 0
push ebx
call sub.USER32.dll_DdeUnaccessData
cmp byte [0x54a0c0], 0
je 0x44e1ab
mov ebx, dword [0x537430]
push dword [0x53742c]
call fcn.004f9c59
test eax, eax
je 0x44e198
mov ebx, dword [0x53742c]
push 0
push 0
push 4
push 0
push 0x54a0c0
push ebx
call fcn.00489ea4
mov eax, 0x8000
jmp 0x44e5ef
push 0x52cbdb
push 0x54a4a7
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44e5ba
test ebx, ebx
je 0x44e5b3
mov byte [0x54a0c0], 0
lea edx, [ebp - 0xc]
push edx
push ebx
call sub.USER32.dll_DdeAccessData
mov esi, eax
test esi, esi
je 0x44e216
push esi
mov edi, esi
mov esi, 0x54a0c0
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 esi
jmp 0x44e21d
mov byte [0x54a0c0], 0
push ebx
call sub.USER32.dll_DdeUnaccessData
push ebx
call sub.USER32.dll_DdeFreeDataHandle
cmp byte [0x54a0c0], 0
je 0x44e5b3
lea esi, [ebp - 0x84]
mov edi, 0x533db8
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]
mov byte [ebp - 0xe8], 0
mov dword [ebp - 0x10], 0x1a0b
xor edi, edi
mov ebx, 0x54a0c0
jmp 0x44e376
inc ebx
cmp byte [ebx], 0x20
je 0x44e27a
cmp byte [ebx], 0
je 0x44e37f
push 0x2c
push ebx
call fcn.0051833c
add esp, 8
mov esi, eax
test esi, esi
je 0x44e29e
mov byte [esi], 0
inc esi
cmp byte [ebx], 0
je 0x44e370
push ebx
call fcn.0048f0e5
test al, al
je 0x44e2ef
push ebx
call fcn.005183dc
pop ecx
cmp eax, 0x5a
jbe 0x44e2c1
mov byte [ebx + 0x5a], 0
push esi
push edi
lea esi, [ebp - 0xe8]
mov edi, ebx
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
jmp 0x44e370
push 0x2e
push ebx
call fcn.0051833c
add esp, 8
test eax, eax
je 0x44e329
push esi
push edi
lea esi, [ebp - 0x84]
mov edi, ebx
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
jmp 0x44e370
push 0x52cbe4
push ebx
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44e342
mov edi, 1
jmp 0x44e370
push 0x52cbe7
push ebx
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44e358
xor edi, edi
jmp 0x44e370
xor eax, eax
mov al, byte [ebx]
test byte [eax*2 + str.________________________________H], 4
je 0x44e370
push ebx
call fcn.0052175c
pop ecx
mov dword [ebp - 0x10], eax
test esi, esi
je 0x44e37f
mov ebx, esi
cmp byte [ebx], 0
jne 0x44e27b
push 0x20
lea eax, [ebp - 0x84]
push eax
call fcn.0051833c
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x44e399
mov byte [ebx], 0
cmp byte [ebp - 0xe8], 0
je 0x44e3cb
push 0x20
lea eax, [ebp - 0xe8]
push eax
call fcn.005186c4
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x44e3cb
mov esi, ebx
jmp 0x44e3be
inc esi
cmp byte [esi], 0x20
je 0x44e3bd
cmp byte [esi], 0
jne 0x44e3cb
mov byte [ebx], 0
cmp dword [0x52b4d4], 0
je 0x44e3dd
cmp dword [0x537b60], 0xffffffff
jne 0x44e3ea
cmp dword [0x52b4d0], 0
je 0x44e4f8
push 0x533db8
lea eax, [ebp - 0x84]
push eax
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44e47d
cmp dword [0x52b4d0], 0
je 0x44e43a
push edi
mov esi, 0x548fd4
lea edi, [ebp - 0xe8]
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
jmp 0x44e571
cmp byte [ebp - 0xe8], 0
je 0x44e571
lea eax, [ebp - 0xe8]
push eax
push 0x52cbea
push 0x54a0c0
call sub.USER32.dll_wsprintfA
add esp, 0xc
push 0
push 0
push 0
push 0
push 0x54a0c0
push dword [0x537430]
call fcn.00489ea4
jmp 0x44e571
cmp byte [ebp - 0x84], 0
je 0x44e4a4
push dword [ebp - 0x10]
lea edx, [ebp - 0x84]
push edx
push 0x52cbf4
push 0x54a0c0
call sub.USER32.dll_wsprintfA
add esp, 0x10
jmp 0x44e4b4
push edi
mov esi, 0x52cc03
mov edi, 0x54a0c0
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
push 0
push 0
push 0
push 0
push 0x54a0c0
push dword [0x537430]
call fcn.00489ea4
push edi
mov esi, 0x548fd4
lea edi, [ebp - 0xe8]
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
jmp 0x44e571
cmp byte [ebp - 0x84], 0
je 0x44e51f
push dword [ebp - 0x10]
lea eax, [ebp - 0x84]
push eax
push str._server__s__d
push 0x54a0c0
call sub.USER32.dll_wsprintfA
add esp, 0x10
jmp 0x44e52f
push edi
mov esi, str._server
mov edi, 0x54a0c0
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
push 0
push 0
push 0
push 0
push 0x54a0c0
push dword [0x537430]
call fcn.00489ea4
push edi
mov esi, 0x548fd4
lea edi, [ebp - 0xe8]
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
test edi, edi
je 0x44e5b3
push 9
push dword [0x537420]
call sub.USER32.dll_ShowWindow
push 0x63
push 0
push 0
push 0
push 0
push 0
push dword [0x537420]
call sub.USER32.dll_SetWindowPos
push dword [0x537420]
call sub.USER32.dll_SetForegroundWindow
mov eax, dword [0x53742c]
test eax, eax
je 0x44e5b3
push eax
call sub.USER32.dll_SetFocus
mov eax, 0x8000
jmp 0x44e5ef
test ebx, ebx
je 0x44e5c4
push ebx
call sub.USER32.dll_DdeFreeDataHandle
xor eax, eax
jmp 0x44e5ef
mov edx, dword [ebp + 0x10]
cmp edx, dword [0x52c908]
jne 0x44e5ed
xor ecx, ecx
mov dword [0x52c908], ecx
jmp 0x44e5ed
cmp dword [ebp + 0x10], 0
jne 0x44e5ed
cmp dword [ebp + 0x20], 0
jne 0x44e5ed
cmp dword [ebp + 0x24], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20