Function at 0x4aa670
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x62e4
call fcn.005d9990
mov eax, dword [0x66ad70]
push ebx
push esi
push edi
xor edi, edi
cmp eax, edi
jne 0x4aba4e
cmp dword [0x61a1bc], edi
mov ebx, 1
mov dword [0x66ad70], ebx
jne 0x4aa6b5
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x4aba48
push 0x1068
push 0x669830
call fcn.004232e0
mov ecx, dword [ebp + 8]
push edi
lea eax, [esp + 0x44]
push eax
push ecx
mov dword [0x66a898], edi
call fcn.00591060
mov esi, eax
add esp, 0x14
cmp esi, edi
mov dword [esp + 0x24], esi
je 0x4aba48
cmp dword [esi + 0x1478], edi
je 0x4aba48
cmp dword [esi + 0x12c4], edi
je 0x4aba48
mov eax, dword [esi + 0x1e90]
push eax
mov dword [esp + 0x30], eax
call fcn.00508aa0
add esp, 4
test eax, eax
je 0x4aba48
mov eax, dword [esi + 0x1360]
cmp eax, ebx
mov ecx, dword [esi + 0x189c]
mov dword [esp + 0x28], ecx
je 0x4aa73e
cmp eax, 2
jne 0x4aa746
cmp dword [0x680f7c], ebx
jne 0x4aa746
lea edx, [ecx + ecx - 1]
mov dword [esp + 0x28], edx
mov eax, dword [ebp + 0xc]
movzx ecx, ax
shr eax, 0x10
push ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x1478]
mov ecx, dword [esi]
lea edx, [esp + 0x34]
push edx
push eax
push ecx
call dword [sym.imp.USER32.dll_MapWindowPoints]
cmp dword [esp + 0x30], 2
jl 0x4aba48
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
cmp eax, ecx
jge 0x4aba48
cmp eax, edi
jl 0x4aba48
mov eax, dword [esi + 0x1308]
mov edx, dword [esi + 0x12c4]
sub eax, dword [esi + 0x130c]
mov ebx, dword [edx + 0x44]
cmp eax, edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebx
jle 0x4aa7c1
cmp ebx, edx
je 0x4aa7bd
mov ebx, dword [ebx + 0x44]
dec eax
cmp eax, edi
jg 0x4aa7b1
mov dword [esp + 0x14], ebx
cmp ebx, edi
je 0x4aba48
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov edi, dword [ebx + 8]
sub ecx, edx
dec ecx
cmp ebx, eax
mov dword [esp + 0x20], ecx
je 0x4aa87c
mov ebx, dword [ebx + 0x44]
mov eax, dword [ebx + 8]
sub ecx, edx
cmp edi, eax
je 0x4aa838
mov edi, eax
mov eax, dword [esi + 0x1360]
cmp eax, 3
je 0x4aa80a
cmp eax, 2
jne 0x4aa830
cmp dword [0x680f7c], 2
jne 0x4aa830
mov edx, dword [esp + 0x24]
mov esi, dword [edx + 0x189c]
mov eax, 0x55555555
imul esi
sub edx, esi
mov esi, dword [esp + 0x24]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
add ecx, edx
mov edx, dword [esp + 0x28]
mov eax, edx
neg eax
cmp ecx, eax
jl 0x4aa840
cmp ebx, dword [esp + 0x1c]
jne 0x4aa7e3
jmp 0x4aa878
mov eax, dword [esi + 0x1360]
add ecx, edx
cmp eax, 3
mov dword [esp + 0x14], ebx
je 0x4aa85f
cmp eax, 2
jne 0x4aa875
cmp dword [0x680f7c], 2
jne 0x4aa875
mov edx, dword [esi + 0x189c]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
add ecx, edx
mov ebx, dword [ebx + 0x40]
mov dword [esp + 0x14], ebx
test ebx, ebx
je 0x4aba35
mov esi, dword [ebx + 8]
mov edi, dword [esp + 0x28]
jmp 0x4aa890
mov eax, dword [esp + 0x34]
cmp eax, ecx
jl 0x4aa89f
lea edx, [ecx + edi]
cmp eax, edx
jl 0x4aa8fe
mov ebx, dword [ebx + 0x40]
test ebx, ebx
mov dword [esp + 0x14], ebx
je 0x4aba35
mov eax, ebx
mov eax, dword [eax + 8]
add ecx, edi
cmp esi, eax
je 0x4aa8ee
mov edx, dword [esp + 0x24]
mov esi, eax
mov eax, dword [edx + 0x1360]
cmp eax, 3
je 0x4aa8d8
cmp eax, 2
jne 0x4aa8ee
cmp dword [0x680f7c], 2
jne 0x4aa8ee
mov edx, dword [edx + 0x189c]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
add ecx, edx
cmp ecx, dword [esp + 0x20]
jg 0x4aba35
mov ebx, dword [esp + 0x14]
jmp 0x4aa890
mov ecx, dword [esp + 0x30]
mov edx, dword [ebx]
mov eax, dword [esp + 0x24]
push ecx
push edx
push eax
call fcn.004aa130
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jl 0x4aba35
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov al, byte [eax + edx]
cmp al, 0x20
je 0x4aba35
cmp al, 9
je 0x4aba35
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x12c4]
cmp ecx, eax
mov esi, ecx
mov dword [esp + 0x18], esi
je 0x4aa965
lea esp, [esp]
mov ecx, dword [esi + 0x44]
mov edx, dword [ecx + 8]
cmp edx, dword [esi + 8]
jne 0x4aa961
mov esi, ecx
cmp esi, eax
jne 0x4aa950
mov dword [esp + 0x18], esi
test esi, esi
je 0x4aba35
test eax, eax
mov edx, 1
mov dword [esp + 0x20], edx
je 0x4aa993
lea ebx, [ebx]
cmp eax, esi
je 0x4aa99b
mov ecx, dword [eax + 8]
cmp dword [eax + 8], ecx
jne 0x4aa9b4
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x4aa987
cmp eax, esi
je 0x4aa99b
mov dword [esp + 0x20], edx
lea eax, [esp + 0x5288]
push 0x1068
push eax
call fcn.004232e0
add esp, 8
mov ebx, esi
jmp 0x4aa9c0
inc dword [esp + 0x20]
jmp 0x4aa980
mov esi, dword [esp + 0x18]
mov edi, edi
mov ecx, dword [ebx + 8]
cmp ecx, dword [esi + 8]
jne 0x4aaa67
mov eax, dword [ebx + 0x10]
test eax, eax
mov ecx, dword [ebx]
jle 0x4aa9f8
cmp byte [ecx], 0x20
jne 0x4aa9ee
lea ebx, [ebx]
test eax, eax
jle 0x4aa9ee
mov dl, byte [ecx + 1]
inc ecx
dec eax
cmp dl, 0x20
je 0x4aa9e0
cmp byte [ecx], 0
jne 0x4aa9f8
mov ecx, 0x5f4858
lea eax, [esp + 0x5288]
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4aaa02
sub eax, esi
mov esi, eax
mov eax, ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4aaa12
sub eax, edi
add eax, esi
cmp eax, 0x1036
ja 0x4aaa63
mov eax, ecx
mov edx, ecx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aaa28
lea edi, [esp + 0x5288]
sub eax, edx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4aaa40
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebx, dword [ebx + 0x40]
test ebx, ebx
jne 0x4aa9ba
mov esi, dword [esp + 0x18]
mov edx, dword [esi]
push edx
push 0x1068
push 0x669830
call fcn.00425550
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp esi, eax
jne 0x4aaa8e
mov dword [esp + 0x28], 0
jmp 0x4aaab3
mov eax, 0x669830
mov dword [esp + 0x28], 1
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aaaa0
mov ecx, dword [esp + 0x10]
sub eax, edx
add ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [esi + 0x40]
test eax, eax
mov dword [esp + 0x18], eax
je 0x4aac80
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx + 8]
jne 0x4aac80
mov edi, dword [esp + 0x18]
mov eax, edx
cmp edi, eax
jne 0x4aaae8
mov dword [esp + 0x28], 0
mov eax, dword [edi + 0x10]
test eax, eax
jle 0x4aabf1
mov ecx, eax
mov eax, dword [esp + 0x18]
mov ebx, dword [eax]
mov dword [esp + 0x1c], ecx
nop
mov al, byte [ebx]
cmp al, 0x20
je 0x4aab0a
cmp al, 9
jne 0x4aab12
test ecx, ecx
jle 0x4aab12
inc ebx
dec ecx
jmp 0x4aab00
cmp byte [ebx], 0
mov dword [esp + 0x1c], ecx
je 0x4aabb6
mov eax, 0x669830
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aab27
sub eax, edx
mov edx, eax
mov eax, ebx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aab37
sub eax, esi
add eax, edx
cmp eax, 0x1036
ja 0x4aac80
mov eax, ebx
mov edx, ebx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aab51
mov edi, 0x669830
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4aab60
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x28]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x4aab98
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aab85
mov ecx, dword [esp + 0x10]
sub eax, edx
add ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x18], ecx
jne 0x4aac6d
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
sub eax, dword [edx + 0x10]
jmp 0x4aac69
mov edi, 0x669830
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4aabc0
mov ax, word [0x5f4858]
mov word [edi], ax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4aabdd
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x18], ecx
jne 0x4aac6d
dec dword [esp + 0x10]
jmp 0x4aac6d
mov eax, 0x669830
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aac00
sub eax, edx
mov edx, dword [edi]
mov esi, eax
mov eax, edx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aac12
sub eax, edi
add eax, esi
cmp eax, 0x1036
ja 0x4aac80
mov eax, edx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aac26
mov edi, 0x669830
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4aac35
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x28]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x4aac6d
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aac60
sub eax, edx
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x40]
test eax, eax
mov dword [esp + 0x18], eax
jne 0x4aaac2
mov esi, dword [esp + 0x10]
test esi, esi
jl 0x4aba35
mov eax, 0x669830
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aac94
sub eax, edx
cmp esi, eax
jge 0x4aba35
mov cl, byte [0x669830]
xor ebx, ebx
xor eax, eax
test cl, cl
je 0x4aacfa
mov cl, byte [eax + 0x669830]
cmp cl, 0x20
je 0x4aacc3
cmp cl, 9
jne 0x4aacc6
inc eax
jmp 0x4aacb3
mov cl, byte [eax + 0x669830]
test cl, cl
je 0x4aacfa
cmp eax, esi
jg 0x4aad03
inc ebx
mov cl, byte [eax + 0x669830]
cmp cl, 0x20
je 0x4aacf0
cmp cl, 9
je 0x4aacf0
mov cl, byte [eax + 0x669831]
inc eax
test cl, cl
jne 0x4aacd5
mov cl, byte [eax + 0x669830]
test cl, cl
jne 0x4aacb3
cmp eax, esi
jg 0x4aad03
mov ebx, 1
lea esi, [esi + 0x669830]
cmp esi, 0x669830
jbe 0x4aad24
mov al, byte [esi]
cmp al, 0x20
je 0x4aad2e
cmp al, 9
je 0x4aad24
dec esi
cmp esi, 0x669830
ja 0x4aad11
mov al, byte [esi]
cmp al, 0x20
je 0x4aad2e
cmp al, 9
jne 0x4aad3a
mov al, byte [esi + 1]
inc esi
test al, al
je 0x4aba35
lea ecx, [esp + 0x4220]
push 0x1068
push ecx
call fcn.004232e0
mov eax, esi
sub eax, 0x669830
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jle 0x4aad74
push eax
lea edx, [esp + 0x4224]
push 0x669830
push edx
call fcn.005da020
add esp, 0xc
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aad80
sub eax, edx
inc eax
push eax
push esi
push 0x669830
call fcn.005daa60
mov cl, byte [0x669830]
add esp, 0xc
test cl, cl
mov eax, 0x669830
je 0x4aadc1
mov cl, byte [eax]
cmp cl, 0x20
je 0x4aadbe
cmp cl, 9
je 0x4aadbe
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4aada8
jmp 0x4aadc1
mov byte [eax], 0
push 0xf
push 0x669830
call fcn.0055a760
mov al, byte [0x669830]
add esp, 8
test al, al
je 0x4aba35
mov eax, dword [0x68758c]
test eax, eax
je 0x4aaeb6
xor eax, eax
mov ecx, 0x842
lea edi, [esp + 0x48]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x5288]
push eax
lea ecx, [esp + 0x78]
push 0x1068
push ecx
mov dword [esp + 0x28], 0
call fcn.00425550
push 0x669830
lea edx, [esp + 0x10ec]
push 0x1068
push edx
call fcn.00425550
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x38]
push edx
push 1
push 0x1d
push str.HOTLINK
push 0
mov dword [esp + 0x2178], eax
mov eax, dword [esi + 0x1e90]
push esi
push eax
mov dword [esp + 0x217c], ebx
call fcn.0053a710
add esp, 0x38
test eax, eax
je 0x4aaeb6
cmp dword [ebp + 0x10], 1
jne 0x4aae97
mov eax, dword [esi + 0x1e90]
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x20]
push edx
push 0
push 0x1d
push str.HOTLINK
push 0
push esi
push eax
call fcn.0053a710
add esp, 0x20
mov ecx, dword [ebp + 8]
mov dword [0x66a898], ecx
mov dword [0x66ad70], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [0x669830]
test al, al
mov esi, 0x669830
je 0x4ab12b
mov edi, dword [esp + 0x2c]
lea esp, [esp]
push edi
push esi
call fcn.005295f0
add esp, 8
test al, al
je 0x4aaee8
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4aaed0
jmp 0x4aaefa
push edi
push esi
call fcn.005295b0
add esp, 8
test al, al
je 0x4ab12b
test esi, esi
je 0x4ab12b
cmp byte [esi], 0
je 0x4ab12b
push 0x2c
push esi
call fcn.005d9b20
add esp, 8
test eax, eax
je 0x4aaf1d
mov byte [eax], 0
cmp byte [esi], 0
je 0x4ab12b
mov al, byte [esi + 1]
test al, al
je 0x4ab12b
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4aaf36
sub eax, edx
test eax, eax
jle case.0x4aaf5f.35
movzx ecx, byte [esi + eax - 1]
lea edx, [ecx - 0x22]
cmp edx, 0x5b
ja case.0x4aaf5f.35
movzx edx, byte [edx + 0x4aba64]
jmp dword [edx*4 + 0x4aba58]
mov byte [esi + eax - 1], 0
jmp case.0x4aaf5f.35
push ecx
push 0x5f8f3c
call fcn.005d9b20
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x20], edi
je case.0x4aaf5f.35
mov cl, byte [esp + 0x4220]
xor eax, eax
test cl, cl
lea edx, [esp + 0x4220]
je 0x4aafbf
mov bl, byte [edi + 1]
cmp cl, bl
jne 0x4aafaa
inc eax
jmp 0x4aafb3
mov edi, dword [esp + 0x20]
cmp cl, byte [edi]
jne 0x4aafb3
dec eax
mov cl, byte [edx + 1]
inc edx
test cl, cl
jne 0x4aafa3
mov edi, dword [esp + 0x20]
mov cl, byte [edi]
cmp cl, 0x27
jne 0x4aafd2
and eax, reloc.WSOCK32.dll_accept
jns 0x4aafd2
dec eax
or eax, 0xfffffffe
inc eax
cmp cl, 0x22
jne 0x4aafe3
and eax, reloc.WSOCK32.dll_accept
jns 0x4aafe3
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jle 0x4ab019
mov ecx, esi
lea edi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4aaff0
sub ecx, edi
test ecx, ecx
jle 0x4ab013
mov edi, dword [esp + 0x20]
mov dl, byte [esi + ecx - 1]
cmp dl, byte [edi]
jne 0x4ab013
dec eax
test eax, eax
mov byte [esi + ecx - 1], 0
jg 0x4aafe7
mov edi, dword [esp + 0x20]
test eax, eax
je case.0x4aaf5f.35
mov ecx, esi
lea eax, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4ab020
sub ecx, eax
test ecx, ecx
jle case.0x4aaf5f.35
mov al, byte [esi + ecx - 1]
cmp al, byte [edi]
jne case.0x4aaf5f.35
mov byte [esi + ecx - 1], 0
cmp byte [esi], 0
je 0x4aba35
mov eax, dword [ebp + 0x10]
cmp eax, 1
mov ebx, dword [ebp + 8]
mov dword [0x66a898], ebx
jne 0x4ab0a2
call fcn.00421e70
push esi
lea ecx, [esp + 0x2154]
push str._join__s
push ecx
call fcn.005d9929
mov eax, dword [esp + 0x38]
push eax
mov eax, dword [eax]
push 0
push 0
push 0
push 0
lea edx, [esp + 0x2170]
push edx
push eax
call fcn.00448030
add esp, 0x28
mov dword [0x66ad70], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4aba1f
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab0b0
sub eax, edx
inc eax
push eax
push esi
push 0x669830
call fcn.005daa60
xor eax, eax
mov ecx, 0x468
lea edi, [esp + 0x54]
push 0x669830
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x58]
push 0x1068
push ecx
call fcn.00425550
mov edx, dword [0x66a898]
lea eax, [esp + 0x60]
push eax
push str.channel_hotlink
push 1
push ebx
mov dword [esp + 0x10d8], edx
call fcn.004fabc0
mov ecx, dword [ebp + 0xc]
push ecx
push 0x14
push ebx
call fcn.004f6890
add esp, 0x34
mov dword [0x66ad70], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x2c]
mov eax, 0x669830
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab137
sub eax, edx
cmp eax, 2
mov dword [esp + 0x20], eax
jl 0x4ab4d6
push 0x2e
push 0x669832
call fcn.005d9b20
add esp, 8
test eax, eax
je 0x4ab4d6
movzx eax, byte [0x669830]
lea ecx, [eax - 0x22]
xor esi, esi
cmp ecx, 0x59
mov dword [esp + 0x1c], 0
ja case.0x4ab188.35
movzx edx, byte [ecx + 0x4abac8]
jmp dword [edx*4 + 0x4abac0]
cmp eax, 0x3c
mov dword [esp + 0x1c], eax
jne 0x4ab19f
mov esi, 0x3e
jmp 0x4ab1d3
cmp eax, 0x28
jne 0x4ab1ab
mov esi, 0x29
jmp 0x4ab1d3
cmp eax, 0x5b
jne 0x4ab1b7
mov esi, 0x5d
jmp 0x4ab1d3
cmp eax, 0x7b
jne 0x4ab1c3
mov esi, 0x7d
jmp 0x4ab1d3
cmp eax, 0x27
jne 0x4ab1cc
mov esi, eax
jmp 0x4ab1d3
cmp eax, 0x22
jne 0x4ab1d3
mov esi, eax
mov eax, 0x669831
lea edx, [eax + 1]
jmp 0x4ab1e0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab1e0
sub eax, edx
inc eax
push eax
push 0x669831
push 0x669830
call fcn.005daa60
add esp, 0xc
mov eax, 0x669830
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab205
sub eax, edx
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x10], ebx
jle case.0x4ab258.35
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4ab23e
test esi, esi
je 0x4ab23e
movzx eax, byte [ebx + 0x66982f]
cmp eax, esi
jne 0x4ab23e
mov byte [ebx + 0x66982f], cl
jmp 0x4ab30a
movzx esi, byte [ebx + 0x66982f]
lea eax, [esi - 0x22]
cmp eax, 0x5b
ja case.0x4ab258.35
movzx ecx, byte [eax + 0x4abb30]
jmp dword [ecx*4 + 0x4abb24]
cmp esi, 0x3e
jne 0x4ab26b
mov ecx, 0x3c
jmp 0x4ab29f
cmp esi, 0x29
jne 0x4ab277
mov ecx, 0x28
jmp 0x4ab29f
cmp esi, 0x5d
jne 0x4ab283
mov ecx, 0x5b
jmp 0x4ab29f
cmp esi, 0x7d
jne 0x4ab28f
mov ecx, 0x7b
jmp 0x4ab29f
cmp esi, 0x27
jne 0x4ab298
mov ecx, esi
jmp 0x4ab29f
cmp esi, 0x22
jne case.0x4ab258.35
mov ecx, esi
mov al, byte [esp + 0x4220]
xor edi, edi
test al, al
lea edx, [esp + 0x4220]
je case.0x4ab258.35
movzx eax, al
cmp eax, ecx
jne 0x4ab2bd
inc edi
jmp 0x4ab2c2
cmp eax, esi
jne 0x4ab2c2
dec edi
mov al, byte [edx + 1]
inc edx
test al, al
jne 0x4ab2b3
test edi, edi
jle case.0x4ab258.35
push ecx
lea edx, [esp + 0x4224]
push edx
call fcn.005d9b20
add esp, 8
test eax, eax
je case.0x4ab258.35
mov byte [eax], 0x20
mov byte [ebx + 0x66982f], 0
cmp dword [esp + 0x1c], 0x3c
jne 0x4ab30a
push 0x3e
push 0x669830
call fcn.005d9b20
add esp, 8
test eax, eax
je 0x4ab30a
mov byte [eax], 0
mov al, byte [0x669830]
test al, al
je 0x4aba35
mov eax, 0x669830
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab320
mov ecx, dword [esp + 0x20]
sub eax, edx
cmp ecx, eax
jne 0x4ab12b
mov eax, dword [0x61b4e4]
xor ebx, ebx
test eax, eax
mov edi, 0x61b4e0
je 0x4aba35
lea esp, [esp]
mov eax, dword [edi + 4]
cmp eax, 1
jne 0x4ab3e4
mov edx, dword [edi]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab363
sub eax, esi
mov esi, eax
push esi
push edx
push 0x669830
call fcn.005f18c9
add esp, 0xc
test eax, eax
jne 0x4ab45b
lea ebx, [esi + 4]
test ebx, ebx
je 0x4aba35
mov eax, 0x669830
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab398
sub eax, edx
cmp eax, ebx
jl 0x4aba35
mov eax, dword [ebp + 0x10]
cmp eax, 1
mov esi, dword [ebp + 8]
mov dword [0x66a898], esi
jne 0x4ab46e
push eax
push 0
push 0x669830
call fcn.005813a0
add esp, 0xc
mov dword [0x66ad70], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4ab42e
mov edx, dword [edi]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ab3f0
sub eax, esi
mov esi, eax
push esi
push edx
push 0x669830
call fcn.005f18c9
add esp, 0xc
test eax, eax
jne 0x4ab45b
lea eax, [esi + 0x669830]
push 0x2e
push eax
call fcn.005d9b20
add esp, 8
test eax, eax
je 0x4aba35
mov ebx, 8
jmp 0x4ab45b
cmp eax, 4
jne 0x4ab45b
push 0x40
push 0x669830
call fcn.005d9b20
add esp, 8
test eax, eax
je 0x4ab45b
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x4aba35
mov ebx, 6
mov eax, dword [edi + 0x10]
add edi, 0xc
test eax, eax
jne 0x4ab350
jmp 0x4ab388
cmp eax, 2
jne 0x4aba1f
xor eax, eax
mov ecx, 0x468
lea edi, [esp + 0x48]
push 0x669830
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x4c]
push 0x1068
push ecx
call fcn.00425550
mov edx, dword [0x66a898]
lea eax, [esp + 0x54]
push eax
push 1
mov dword [esp + 0x10c4], edx
call fcn.004fc3a0
mov ecx, dword [ebp + 0xc]
push ecx
push 0x1b
push esi
call fcn.004f6890
add esp, 0x20
mov dword [0x66ad70], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x1314]
test eax, eax
je 0x4ab4f6
cmp eax, 1
je 0x4ab4f6
cmp eax, 2
jne 0x4aba35
mov ebx, dword [esp + 0x2c]
push ebx
call fcn.004aa380
push 0x66ab04
push 0x66a8a0
call fcn.005f1860
add esp, 0xc
test eax, eax
jne 0x4ab517
mov byte [0x66ab04], al
push 0x66ac36
push 0x66a9d2
call fcn.005f1860
add esp, 8
test eax, eax
jne 0x4ab532
mov byte [0x66ac36], al
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x1314], 1
jne 0x4ab709
xor esi, esi
mov edi, 0x66a8a0
lea ebx, [ebx]
cmp byte [edi], 0
je 0x4ab59e
mov ecx, dword [esp + 0x24]
add ecx, 0x12bc
push ecx
xor esi, esi
push esi
xor ebx, ebx
push edi
mov dword [esp + 0x1c], ebx
call fcn.004a2bb0
add esp, 0xc
test eax, eax
je 0x4ab59e
mov edx, dword [esp + 0x24]
mov esi, dword [edx + 0x12b0]
test esi, esi
je 0x4ab59e
cmp esi, eax
je 0x4ab596
mov esi, dword [esi + 0x40]
inc ebx
test esi, esi
jne 0x4ab584
mov dword [esp + 0x10], ebx
jmp 0x4ab59e
test esi, esi
mov dword [esp + 0x10], ebx
jne 0x4ab5ae
add edi, 0x132
cmp edi, 0x66ad68
jl 0x4ab550
jmp 0x4ab5c3
mov eax, dword [esi]
push eax
push 0x1068
push 0x669830
call fcn.00425550
add esp, 0xc
test esi, esi
je 0x4ab705
mov eax, dword [ebp + 0x10]
cmp eax, 1
mov ebx, dword [ebp + 8]
mov dword [0x66a898], ebx
jne 0x4ab654
mov al, byte [0x63533e]
test al, al
je 0x4aba1f
call fcn.00421e70
push 0x63533e
lea ecx, [esp + 0x2154]
push 0x1068
push ecx
call fcn.00425550
mov edx, dword [esi]
push edx
lea eax, [esp + 0x31c8]
push 0x1068
push eax
call fcn.00425550
mov ecx, dword [esp + 0x44]
push ecx
push 0
push 0
push 1
lea edx, [esp + 0x31e0]
push edx
lea eax, [esp + 0x217c]
push eax
push ebx
call fcn.00448030
add esp, 0x34
mov dword [0x66ad70], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4ab6cf
mov ecx, dword [esp + 0x10]
push 1
push 1
push ecx
push 0x8098
push ebx
call fcn.00422e10
push 0x669830
lea edx, [esp + 0x60]
xor eax, eax
push 0x1068
mov ecx, 0x468
lea edi, [esp + 0x64]
push edx
rep stosd dword es:[edi], eax
call fcn.00425550
mov eax, dword [0x66a898]
lea ecx, [esp + 0x68]
push ecx
push str.nicklist_hotlink
push ebx
mov dword [esp + 0x10dc], eax
call fcn.004fae00
mov edx, dword [ebp + 0xc]
push edx
push 3
push ebx
call fcn.004f6890
add esp, 0x38
mov dword [0x66ad70], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 3
jne 0x4aba1f
mov eax, dword [esp + 0x10]
push 1
push 1
push eax
push 0x8098
push ebx
call fcn.00422e10
add esp, 0x14
mov dword [0x66ad70], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x2c]
mov eax, dword [ebx + 0x72cc]
test eax, eax
je 0x4ab741
mov esi, 0x66a8a0
cmp byte [esi], 0
je 0x4ab733
push ebx
push 1
push esi
call fcn.0050dcd0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x4ab802
add esi, 0x132
cmp esi, 0x66ad68
jl 0x4ab718
mov eax, dword [ebx + 0x7180]
test eax, eax
je 0x4aba35
mov ebx, dword [esp + 0x2c]
xor esi, esi
mov edi, 0x66a8a0
lea ebx, [ebx]
cmp byte [edi], 0
je 0x4ab78b
mov esi, dword [ebx + 0x7180]
test esi, esi
je 0x4ab78b
nop
mov ecx, dword [esi]
push edi
push ecx
call fcn.005f1860
add esp, 8
test eax, eax
je 0x4ab94a
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x4ab770
add edi, 0x132
cmp edi, 0x66ad68
jl 0x4ab760
test esi, esi
je 0x4aba35
mov eax, dword [ebp + 0x10]
cmp eax, 1
mov ebx, dword [ebp + 8]
mov dword [0x66a898], ebx
jne 0x4ab9cd
mov al, byte [0x634ada]
test al, al
je 0x4aba1f
call fcn.00421e70
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x1314]
mov ecx, 2
cmp edx, ecx
jne 0x4ab964
cmp dword [eax + 0x1318], ecx
jne 0x4ab964
push 0x635ba2
push 0x1068
lea eax, [esp + 0x2158]
push eax
jmp 0x4ab976
push edi
push 0x1068
push 0x669830
call fcn.00425550
push 0x21
push 0x669830
call fcn.005d9b20
add esp, 0x14
test eax, eax
je 0x4ab828
mov byte [eax], 0
mov eax, dword [ebp + 0x10]
cmp eax, 1
mov esi, dword [ebp + 8]
mov dword [0x66a898], esi
jne 0x4ab8f7
mov al, byte [0x635770]
test al, al
je 0x4aba1f
call fcn.00421e70
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x1314], 2
jne 0x4ab87b
mov edx, ecx
cmp dword [edx + 0x1318], 2
jne 0x4ab87b
push 0x635ba2
push 0x1068
lea eax, [esp + 0x2158]
push eax
jmp 0x4ab88d
push 0x635770
push 0x1068
lea ecx, [esp + 0x2158]
push ecx
call fcn.00425550
add esp, 0xc
push edi
lea edx, [esp + 0x31bc]
push 0x1068
push edx
call fcn.00425550
lea eax, [esp + 0x31c4]
push 0x21
push eax
call fcn.005d9b20
add esp, 0x14
test eax, eax
je 0x4ab8c1
mov byte [eax], 0
push ebx
push 0
push 0
push 1
lea ecx, [esp + 0x31c8]
push ecx
lea edx, [esp + 0x2164]
push edx
push esi
call fcn.00448030
add esp, 0x1c
mov dword [0x66ad70], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4aba1f
xor eax, eax
mov ecx, 0x468
lea edi, [esp + 0x48]
push 0x669830
rep stosd dword es:[edi], eax
lea eax, [esp + 0x4c]
push 0x1068
push eax
call fcn.00425550
mov ecx, dword [0x66a898]
lea edx, [esp + 0x54]
push edx
push str.query_hotlink
push esi
mov dword [esp + 0x10c8], ecx
call fcn.004fad20
mov eax, dword [ebp + 0xc]
push eax
push 7
push esi
jmp 0x4aba17
mov edx, dword [esi]
push edx
push 0x1068
push 0x669830
call fcn.00425550
add esp, 0xc
jmp 0x4ab7a1
push 0x634ada
push 0x1068
lea ecx, [esp + 0x2158]
push ecx
call fcn.00425550
mov edx, dword [esi]
add esp, 0xc
push edx
lea eax, [esp + 0x31bc]
push 0x1068
push eax
call fcn.00425550
mov ecx, dword [esp + 0x38]
push ecx
push 0
push 0
push 1
lea edx, [esp + 0x31d4]
push edx
lea eax, [esp + 0x2170]
push eax
push ebx
call fcn.00448030
add esp, 0x28
mov dword [0x66ad70], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4aba1f
xor eax, eax
mov ecx, 0x468
lea edi, [esp + 0x48]
push 0x669830
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x4c]
push 0x1068
push ecx
call fcn.00425550
mov edx, dword [0x66a898]
lea eax, [esp + 0x54]
push eax
push str.query_hotlink
push ebx
mov dword [esp + 0x10c8], edx
call fcn.004fad20
mov ecx, dword [ebp + 0xc]
push ecx
push 2
push ebx
call fcn.004f6890
add esp, 0x24
mov dword [0x66ad70], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [0x66ad70], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [0x66ad70], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret