Function at 0x4a78d0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x17e4
call fcn.005cd640
mov eax, dword [0x637658]
push ebx
push esi
push edi
xor edi, edi
cmp eax, edi
jne 0x4a8a7b
cmp dword [0x609c04], edi
mov ebx, 1
mov dword [0x637658], ebx
jne 0x4a7915
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x4a8a75
push 0x3e7
push 0x6370d0
call fcn.00423a00
mov ecx, dword [ebp + 8]
push edi
lea eax, [esp + 0x44]
push eax
push ecx
mov dword [0x6374b8], edi
call fcn.00584d10
mov esi, eax
add esp, 0x14
cmp esi, edi
mov dword [esp + 0x2c], esi
je 0x4a8a75
cmp dword [esi + 0x87c], edi
je 0x4a8a75
cmp dword [esi + 0x6cc], edi
je 0x4a8a75
mov eax, dword [esi + 0xbf4]
push eax
mov dword [esp + 0x24], eax
call fcn.00502a60
add esp, 4
test eax, eax
je 0x4a8a75
mov eax, dword [esi + 0x768]
cmp eax, ebx
mov ecx, dword [esi + 0xa00]
mov dword [esp + 0x24], ecx
je 0x4a799e
cmp eax, 2
jne 0x4a79a6
cmp dword [0x63e11c], ebx
jne 0x4a79a6
lea edx, [ecx + ecx - 1]
mov dword [esp + 0x24], 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 + 0x87c]
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 0x4a8a75
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
cmp eax, ecx
jge 0x4a8a75
cmp eax, edi
jl 0x4a8a75
mov eax, dword [esi + 0x710]
mov edx, dword [esi + 0x6cc]
sub eax, dword [esi + 0x714]
mov ebx, dword [edx + 0x44]
cmp eax, edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], ebx
jle 0x4a7a21
cmp ebx, edx
je 0x4a7a1d
mov ebx, dword [ebx + 0x44]
dec eax
cmp eax, edi
jg 0x4a7a11
mov dword [esp + 0x14], ebx
cmp ebx, edi
je 0x4a8a75
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov edi, dword [ebx + 8]
sub ecx, edx
dec ecx
cmp ebx, eax
mov dword [esp + 0x1c], ecx
je 0x4a7adc
mov ebx, dword [ebx + 0x44]
mov eax, dword [ebx + 8]
sub ecx, edx
cmp edi, eax
je 0x4a7a98
mov edi, eax
mov eax, dword [esi + 0x768]
cmp eax, 3
je 0x4a7a6a
cmp eax, 2
jne 0x4a7a90
cmp dword [0x63e11c], 2
jne 0x4a7a90
mov edx, dword [esp + 0x2c]
mov esi, dword [edx + 0xa00]
mov eax, 0x55555555
imul esi
sub edx, esi
mov esi, dword [esp + 0x2c]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
add ecx, edx
mov edx, dword [esp + 0x24]
mov eax, edx
neg eax
cmp ecx, eax
jl 0x4a7aa0
cmp ebx, dword [esp + 0x28]
jne 0x4a7a43
jmp 0x4a7ad8
mov eax, dword [esi + 0x768]
add ecx, edx
cmp eax, 3
mov dword [esp + 0x14], ebx
je 0x4a7abf
cmp eax, 2
jne 0x4a7ad5
cmp dword [0x63e11c], 2
jne 0x4a7ad5
mov edx, dword [esi + 0xa00]
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 0x4a8a62
mov esi, dword [ebx + 8]
mov edi, dword [esp + 0x24]
jmp 0x4a7af0
mov eax, dword [esp + 0x34]
cmp eax, ecx
jl 0x4a7aff
lea edx, [ecx + edi]
cmp eax, edx
jl 0x4a7b5e
mov ebx, dword [ebx + 0x40]
test ebx, ebx
mov dword [esp + 0x14], ebx
je 0x4a8a62
mov eax, ebx
mov eax, dword [eax + 8]
add ecx, edi
cmp esi, eax
je 0x4a7b4e
mov edx, dword [esp + 0x2c]
mov esi, eax
mov eax, dword [edx + 0x768]
cmp eax, 3
je 0x4a7b38
cmp eax, 2
jne 0x4a7b4e
cmp dword [0x63e11c], 2
jne 0x4a7b4e
mov edx, dword [edx + 0xa00]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
add ecx, edx
cmp ecx, dword [esp + 0x1c]
jg 0x4a8a62
mov ebx, dword [esp + 0x14]
jmp 0x4a7af0
mov ecx, dword [esp + 0x30]
mov edx, dword [ebx]
mov eax, dword [esp + 0x2c]
push ecx
push edx
push eax
call fcn.004a7380
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jl 0x4a8a62
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov al, byte [eax + edx]
cmp al, 0x20
je 0x4a8a62
cmp al, 9
je 0x4a8a62
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x6cc]
cmp ecx, eax
mov esi, ecx
mov dword [esp + 0x18], esi
je 0x4a7bc5
lea esp, [esp]
mov ecx, dword [esi + 0x44]
mov edx, dword [ecx + 8]
cmp edx, dword [esi + 8]
jne 0x4a7bc1
mov esi, ecx
cmp esi, eax
jne 0x4a7bb0
mov dword [esp + 0x18], esi
test esi, esi
je 0x4a8a62
test eax, eax
mov edx, 1
mov dword [esp + 0x1c], edx
je 0x4a7bf3
lea ebx, [ebx]
cmp eax, esi
je 0x4a7bfb
mov ecx, dword [eax + 8]
cmp dword [eax + 8], ecx
jne 0x4a7c14
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x4a7be7
cmp eax, esi
je 0x4a7bfb
mov dword [esp + 0x1c], edx
lea eax, [esp + 0x818]
push 0x3e7
push eax
call fcn.00423a00
add esp, 8
mov ebx, esi
jmp 0x4a7c20
inc dword [esp + 0x1c]
jmp 0x4a7be0
mov esi, dword [esp + 0x18]
mov edi, edi
mov ecx, dword [ebx + 8]
cmp ecx, dword [esi + 8]
jne 0x4a7cc7
mov eax, dword [ebx + 0x10]
test eax, eax
mov ecx, dword [ebx]
jle 0x4a7c58
cmp byte [ecx], 0x20
jne 0x4a7c4e
lea ebx, [ebx]
test eax, eax
jle 0x4a7c4e
mov dl, byte [ecx + 1]
inc ecx
dec eax
cmp dl, 0x20
je 0x4a7c40
cmp byte [ecx], 0
jne 0x4a7c58
mov ecx, 0x5e7420
lea eax, [esp + 0x818]
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4a7c62
sub eax, esi
mov esi, eax
mov eax, ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4a7c72
sub eax, edi
add eax, esi
cmp eax, 0x3b5
ja 0x4a7cc3
mov eax, ecx
mov edx, ecx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7c88
lea edi, [esp + 0x818]
sub eax, edx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4a7ca0
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 0x4a7c1a
mov esi, dword [esp + 0x18]
mov ecx, dword [esi]
mov edx, 0x6370d0
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x4a7cd0
cmp esi, dword [esp + 0x14]
jne 0x4a7cea
mov dword [esp + 0x24], 0
jmp 0x4a7d13
mov eax, 0x6370d0
mov dword [esp + 0x24], 1
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7d00
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 0x4a7ee6
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 8]
jne 0x4a7ee6
mov edi, dword [esp + 0x18]
mov eax, ecx
cmp edi, eax
jne 0x4a7d48
mov dword [esp + 0x24], 0
mov eax, dword [edi + 0x10]
test eax, eax
jle 0x4a7e55
mov edx, dword [esp + 0x18]
mov ebx, dword [edx]
mov ecx, eax
mov dword [esp + 0x28], ecx
nop
mov al, byte [ebx]
cmp al, 0x20
je 0x4a7d6a
cmp al, 9
jne 0x4a7d72
test ecx, ecx
jle 0x4a7d72
inc ebx
dec ecx
jmp 0x4a7d60
cmp byte [ebx], 0
mov dword [esp + 0x28], ecx
je 0x4a7e14
mov eax, 0x6370d0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7d87
sub eax, edx
mov edx, eax
mov eax, ebx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7d97
sub eax, esi
add eax, edx
cmp eax, 0x3b5
ja 0x4a7ee6
mov eax, ebx
mov edx, ebx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7db1
mov edi, 0x6370d0
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4a7dc0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x24]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x4a7df8
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7de5
mov ecx, dword [esp + 0x10]
sub eax, edx
add ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jne 0x4a7ed3
mov eax, dword [esp + 0x28]
mov edx, dword [ecx + 0x10]
jmp 0x4a7ec7
mov edi, 0x6370d0
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4a7e20
mov eax, dword [esp + 0x24]
test eax, eax
mov dx, word [0x5e7420]
mov word [edi], dx
je 0x4a7e3e
inc dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x18], eax
jne 0x4a7ed3
dec dword [esp + 0x10]
jmp 0x4a7ed3
mov eax, 0x6370d0
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7e60
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 0x4a7e72
sub eax, edi
add eax, esi
cmp eax, 0x3b5
ja 0x4a7ee6
mov eax, edx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7e86
mov edi, 0x6370d0
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4a7e95
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x24]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x4a7ed3
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7ec0
mov ecx, dword [esp + 0x10]
sub eax, edx
add ecx, eax
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x40]
test eax, eax
mov dword [esp + 0x18], eax
jne 0x4a7d22
mov esi, dword [esp + 0x10]
test esi, esi
jl 0x4a8a62
mov eax, 0x6370d0
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7f00
sub eax, edx
cmp esi, eax
jge 0x4a8a62
mov cl, byte [0x6370d0]
xor ebx, ebx
xor eax, eax
test cl, cl
je 0x4a7f67
nop
mov cl, byte [eax + 0x6370d0]
cmp cl, 0x20
je 0x4a7f30
cmp cl, 9
jne 0x4a7f33
inc eax
jmp 0x4a7f20
mov cl, byte [eax + 0x6370d0]
test cl, cl
je 0x4a7f67
cmp eax, esi
jg 0x4a7f70
inc ebx
mov cl, byte [eax + 0x6370d0]
cmp cl, 0x20
je 0x4a7f5d
cmp cl, 9
je 0x4a7f5d
mov cl, byte [eax + 0x6370d1]
inc eax
test cl, cl
jne 0x4a7f42
mov cl, byte [eax + 0x6370d0]
test cl, cl
jne 0x4a7f20
cmp eax, esi
jg 0x4a7f70
mov ebx, 1
lea esi, [esi + 0x6370d0]
cmp esi, 0x6370d0
jbe 0x4a7f93
mov edi, edi
mov al, byte [esi]
cmp al, 0x20
je 0x4a7f9d
cmp al, 9
je 0x4a7f93
dec esi
cmp esi, 0x6370d0
ja 0x4a7f80
mov al, byte [esi]
cmp al, 0x20
je 0x4a7f9d
cmp al, 9
jne 0x4a7fa9
mov al, byte [esi + 1]
inc esi
test al, al
je 0x4a8a62
lea eax, [esp + 0xc00]
push 0x3e7
push eax
call fcn.00423a00
mov eax, esi
sub eax, 0x6370d0
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jle 0x4a7fe3
push eax
lea ecx, [esp + 0xc04]
push 0x6370d0
push ecx
call fcn.005cc410
add esp, 0xc
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7fe8
sub eax, edx
inc eax
push eax
push esi
push 0x6370d0
call fcn.005cceb0
mov cl, byte [0x6370d0]
add esp, 0xc
test cl, cl
mov eax, 0x6370d0
je 0x4a8029
mov cl, byte [eax]
cmp cl, 0x20
je 0x4a8026
cmp cl, 9
je 0x4a8026
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4a8010
jmp 0x4a8029
mov byte [eax], 0
push 0xf
push 0x6370d0
call fcn.00551b90
mov al, byte [0x6370d0]
add esp, 8
test al, al
je 0x4a8a62
mov eax, dword [0x63fb90]
test eax, eax
je 0x4a8120
xor eax, eax
lea edx, [esp + 0x818]
push edx
mov ecx, 0x202
lea edi, [esp + 0xfec]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x1018]
push 0x3e7
xor esi, esi
push eax
mov dword [esp + 0x34], esi
call fcn.00423900
push 0x6370d0
lea ecx, [esp + 0x140b]
push 0x3e7
push ecx
call fcn.00423900
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x1000]
push eax
lea ecx, [esp + 0x44]
push ecx
push 1
push 0x1d
push str.HOTLINK
mov dword [esp + 0x1810], ebx
mov ebx, dword [esp + 0x58]
push esi
mov dword [esp + 0x1818], edx
mov edx, dword [ebx + 0xbf4]
push ebx
push edx
call fcn.00532e60
add esp, 0x38
test eax, eax
je 0x4a8124
cmp dword [ebp + 0x10], 1
jne 0x4a8106
mov edx, dword [ebx + 0xbf4]
lea eax, [esp + 0xfe8]
push eax
lea ecx, [esp + 0x2c]
push ecx
push esi
push 0x1d
push str.HOTLINK
push esi
push ebx
push edx
call fcn.00532e60
add esp, 0x20
mov eax, dword [ebp + 8]
mov dword [0x6374b8], eax
mov dword [0x637658], esi
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x2c]
mov al, byte [0x6370d0]
test al, al
mov edi, dword [esp + 0x20]
mov esi, 0x6370d0
je 0x4a8368
lea ebx, [ebx]
push edi
push esi
call fcn.00522540
add esp, 8
test al, al
je 0x4a8158
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4a8140
jmp 0x4a816a
push edi
push esi
call fcn.00522500
add esp, 8
test al, al
je 0x4a8368
test esi, esi
je 0x4a8368
cmp byte [esi], 0
je 0x4a8368
push 0x2c
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x4a818d
mov byte [eax], 0
cmp byte [esi], 0
je 0x4a8368
mov al, byte [esi + 1]
test al, al
je 0x4a8368
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a81a6
sub eax, edx
test eax, eax
jle case.0x4a81cf.35
movzx ecx, byte [esi + eax - 1]
lea edx, [ecx - 0x22]
cmp edx, 0x5b
ja case.0x4a81cf.35
movzx edx, byte [edx + 0x4a8a90]
jmp dword [edx*4 + 0x4a8a84]
mov byte [esi + eax - 1], 0
jmp case.0x4a81cf.35
push ecx
push 0x5eae20
call fcn.005cbf10
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x1c], edi
je case.0x4a81cf.35
mov cl, byte [esp + 0xc00]
xor eax, eax
test cl, cl
lea edx, [esp + 0xc00]
je 0x4a822f
mov bl, byte [edi + 1]
cmp cl, bl
jne 0x4a821a
inc eax
jmp 0x4a8223
mov edi, dword [esp + 0x1c]
cmp cl, byte [edi]
jne 0x4a8223
dec eax
mov cl, byte [edx + 1]
inc edx
test cl, cl
jne 0x4a8213
mov edi, dword [esp + 0x1c]
mov cl, byte [edi]
cmp cl, 0x27
jne 0x4a8242
and eax, reloc.WSOCK32.dll_accept
jns 0x4a8242
dec eax
or eax, 0xfffffffe
inc eax
cmp cl, 0x22
jne 0x4a8253
and eax, reloc.WSOCK32.dll_accept
jns 0x4a8253
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jle 0x4a8289
mov ecx, esi
lea edi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4a8260
sub ecx, edi
test ecx, ecx
jle 0x4a8283
mov edi, dword [esp + 0x1c]
mov dl, byte [esi + ecx - 1]
cmp dl, byte [edi]
jne 0x4a8283
dec eax
test eax, eax
mov byte [esi + ecx - 1], 0
jg 0x4a8257
mov edi, dword [esp + 0x1c]
test eax, eax
je case.0x4a81cf.35
mov ecx, esi
lea eax, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4a8290
sub ecx, eax
test ecx, ecx
jle case.0x4a81cf.35
mov al, byte [esi + ecx - 1]
cmp al, byte [edi]
jne case.0x4a81cf.35
mov byte [esi + ecx - 1], 0
cmp byte [esi], 0
je 0x4a8a62
mov eax, dword [ebp + 0x10]
cmp eax, 1
mov edi, dword [ebp + 8]
mov dword [0x6374b8], edi
jne 0x4a830d
call fcn.00421d30
push esi
lea ecx, [esp + 0x4c]
push str._join__s
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esp + 0x2c]
push eax
mov eax, dword [eax]
push 0
push 0
push 0
push 0
lea edx, [esp + 0x68]
push edx
push eax
call fcn.00447670
add esp, 0x28
mov dword [0x637658], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4a8a4c
mov eax, esi
lea edx, [eax + 1]
jmp 0x4a8320
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a8320
sub eax, edx
inc eax
push eax
push esi
push 0x6370d0
call fcn.005cceb0
push str.channel_hotlink
push 1
push edi
call fcn.004f4ff0
mov ecx, dword [ebp + 0xc]
push ecx
push 0x14
push edi
call fcn.004f0c90
add esp, 0x24
mov dword [0x637658], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x6370d0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a8370
sub eax, edx
cmp eax, 2
jb 0x4a85d3
push 0x2e
push 0x6370d2
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x4a85d3
movzx eax, byte [0x6370d0]
add eax, 0xffffffde
xor edi, edi
cmp eax, 0x59
ja case.0x4a83b1.35
movzx edx, byte [eax + 0x4a8af8]
jmp dword [edx*4 + 0x4a8aec]
mov edi, 1
mov eax, 0x6370d1
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a83c5
sub eax, edx
inc eax
push eax
push 0x6370d1
push 0x6370d0
call fcn.005cceb0
add esp, 0xc
mov eax, 0x6370d0
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a83f0
sub eax, edx
mov esi, eax
test esi, esi
jle case.0x4a8415.35
movzx eax, byte [esi + 0x6370cf]
add eax, 0xffffffde
cmp eax, 0x5b
ja case.0x4a8415.35
movzx eax, byte [eax + 0x4a8b64]
jmp dword [eax*4 + 0x4a8b54]
xor edi, edi
jmp case.0x4a8415.34
push 0x5eae08
push 0x6370d0
call fcn.005ccdf0
add esp, 8
test eax, eax
jne case.0x4a8415.35
mov byte [esi + 0x6370cf], 0
test edi, edi
je 0x4a8457
push 0x3e
push 0x6370d0
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x4a8457
mov byte [eax], 0
mov al, byte [0x6370d0]
test al, al
je 0x4a8a62
mov eax, dword [0x60a434]
xor ebx, ebx
test eax, eax
mov edi, 0x60a430
je 0x4a8a62
jmp 0x4a8480
mov eax, dword [edi + 4]
cmp eax, 1
jne 0x4a8514
mov edx, dword [edi]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a8493
sub eax, esi
mov esi, eax
push esi
push edx
push 0x6370d0
call fcn.005e325e
add esp, 0xc
test eax, eax
jne 0x4a858b
lea ebx, [esi + 4]
test ebx, ebx
je 0x4a8a62
mov eax, 0x6370d0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a84c8
sub eax, edx
cmp eax, ebx
jl 0x4a8a62
mov eax, dword [ebp + 0x10]
cmp eax, 1
mov esi, dword [ebp + 8]
mov dword [0x6374b8], esi
jne 0x4a859e
push eax
push 0
push 0x6370d0
call fcn.005756e0
add esp, 0xc
mov dword [0x637658], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4a855e
mov edx, dword [edi]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a8520
sub eax, esi
mov esi, eax
push esi
push edx
push 0x6370d0
call fcn.005e325e
add esp, 0xc
test eax, eax
jne 0x4a858b
lea ecx, [esi + 0x6370d0]
push 0x2e
push ecx
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x4a8a62
mov ebx, 8
jmp 0x4a858b
cmp eax, 4
jne 0x4a858b
push 0x40
push 0x6370d0
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x4a858b
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x4a8a62
mov ebx, 6
mov eax, dword [edi + 0x10]
add edi, 0xc
test eax, eax
jne 0x4a8480
jmp 0x4a84b8
cmp eax, 2
jne 0x4a8a4c
push 1
call fcn.004f6770
mov edx, dword [ebp + 0xc]
push edx
push 0x1b
push esi
call fcn.004f0c90
add esp, 0x10
mov dword [0x637658], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x71c]
test eax, eax
je 0x4a85f3
cmp eax, 1
je 0x4a85f3
cmp eax, 2
jne 0x4a8a62
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x2c]
push edi
call fcn.004a75d0
push 0x637588
push 0x6374c0
call fcn.005e31f5
add esp, 0xc
test eax, eax
jne 0x4a8614
mov byte [0x637588], al
push 0x6375ec
push 0x637524
call fcn.005e31f5
add esp, 8
test eax, eax
jne 0x4a862f
mov byte [0x6375ec], al
cmp dword [ebx + 0x71c], 1
jne 0x4a87a4
xor esi, esi
mov edi, 0x6374c0
cmp byte [edi], 0
je 0x4a868b
lea eax, [ebx + 0x6c4]
push eax
xor esi, esi
push esi
push edi
mov dword [esp + 0x1c], esi
call fcn.0049ffe0
add esp, 0xc
test eax, eax
je 0x4a868b
mov esi, dword [ebx + 0x6b8]
test esi, esi
je 0x4a868b
mov ecx, dword [esp + 0x10]
cmp esi, eax
je 0x4a8683
mov esi, dword [esi + 0x40]
inc ecx
test esi, esi
jne 0x4a8671
mov dword [esp + 0x10], ecx
jmp 0x4a868b
test esi, esi
mov dword [esp + 0x10], ecx
jne 0x4a8698
add edi, 0x64
cmp edi, 0x637650
jl 0x4a8643
jmp 0x4a86aa
mov ecx, dword [esi]
mov edx, 0x6370d0
nop
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x4a86a0
test esi, esi
je 0x4a87a4
mov eax, dword [ebp + 0x10]
cmp eax, 1
mov edi, dword [ebp + 8]
mov dword [0x6374b8], edi
jne 0x4a8739
mov al, byte [0x611c84]
test al, al
je 0x4a8a4c
call fcn.00421d30
xor eax, eax
jmp 0x4a86e0
mov cl, byte [eax + 0x611c84]
mov byte [esp + eax + 0x48], cl
inc eax
test cl, cl
jne 0x4a86e0
mov esi, dword [esi]
lea ecx, [esp + 0x430]
mov al, byte [esi]
inc esi
mov byte [ecx], al
inc ecx
test al, al
jne 0x4a86f8
mov ecx, dword [esp + 0x20]
push ecx
push 0
push 0
push 1
lea edx, [esp + 0x440]
push edx
lea eax, [esp + 0x5c]
push eax
push edi
call fcn.00447670
add esp, 0x1c
mov dword [0x637658], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4a8782
mov ecx, dword [esp + 0x10]
push 1
push 1
push ecx
push 0x8098
push edi
call fcn.00422dd0
push str.nicklist_hotlink
push edi
call fcn.004f5210
mov edx, dword [ebp + 0xc]
push edx
push 3
push edi
call fcn.004f0c90
add esp, 0x28
mov dword [0x637658], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 3
jne 0x4a8a4c
mov eax, dword [esp + 0x10]
push 1
push 1
push eax
push 0x8098
push edi
call fcn.00422dd0
jmp 0x4a8a49
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x2238]
test eax, eax
je 0x4a87e1
mov esi, 0x6374c0
cmp byte [esi], 0
je 0x4a87d6
mov edx, dword [esp + 0x20]
push edx
push 1
push esi
call fcn.00507b00
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x4a88a4
add esi, 0x64
cmp esi, 0x637650
jl 0x4a87b7
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x21bc]
test eax, eax
je 0x4a8a62
xor esi, esi
mov edi, 0x6374c0
mov ebx, edx
lea esp, [esp]
cmp byte [edi], 0
je 0x4a882b
mov esi, dword [ebx + 0x21bc]
test esi, esi
je 0x4a882b
nop
mov eax, dword [esi]
push edi
push eax
call fcn.005e31f5
add esp, 8
test eax, eax
je 0x4a89ba
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x4a8810
add edi, 0x64
cmp edi, 0x637650
jl 0x4a8800
test esi, esi
je 0x4a8a62
mov ebx, dword [esp + 0x20]
mov eax, dword [ebp + 0x10]
cmp eax, 1
mov edi, dword [ebp + 8]
mov dword [0x6374b8], edi
jne 0x4a8a2d
mov al, byte [0x611a7c]
test al, al
je 0x4a8a4c
call fcn.00421d30
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x71c]
mov ecx, 2
cmp edx, ecx
jne 0x4a89d0
cmp dword [eax + 0x720], ecx
jne 0x4a89d0
xor eax, eax
mov edi, edi
mov cl, byte [eax + 0x611e8c]
mov byte [esp + eax + 0x48], cl
inc eax
test cl, cl
jne 0x4a8890
jmp 0x4a89e1
mov edx, 0x6370d0
mov eax, edi
sub edx, edi
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4a88b0
push 0x21
push 0x6370d0
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x4a88d0
mov byte [eax], 0
mov eax, dword [ebp + 0x10]
cmp eax, 1
mov esi, dword [ebp + 8]
mov dword [0x6374b8], esi
jne 0x4a899a
mov al, byte [0x611d88]
test al, al
je 0x4a8a4c
call fcn.00421d30
cmp dword [ebx + 0x71c], 2
jne 0x4a8921
cmp dword [ebx + 0x720], 2
jne 0x4a8921
xor eax, eax
jmp 0x4a8910
mov cl, byte [eax + 0x611e8c]
mov byte [esp + eax + 0x48], cl
inc eax
test cl, cl
jne 0x4a8910
jmp 0x4a8932
xor eax, eax
mov cl, byte [eax + 0x611d88]
mov byte [esp + eax + 0x48], cl
inc eax
test cl, cl
jne 0x4a8923
lea edx, [esp + 0x430]
mov eax, edi
sub edx, edi
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4a8940
lea eax, [esp + 0x430]
push 0x21
push eax
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x4a8963
mov byte [eax], 0
mov ecx, dword [esp + 0x20]
push ecx
push 0
push 0
push 1
lea edx, [esp + 0x440]
push edx
lea eax, [esp + 0x5c]
push eax
push esi
call fcn.00447670
add esp, 0x1c
mov dword [0x637658], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4a8a4c
push str.query_hotlink
push esi
call fcn.004f5140
mov ecx, dword [ebp + 0xc]
push ecx
push 7
push esi
jmp 0x4a8a44
mov ecx, dword [esi]
mov edx, 0x6370d0
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x4a89c1
jmp 0x4a8842
xor eax, eax
mov cl, byte [eax + 0x611a7c]
mov byte [esp + eax + 0x48], cl
inc eax
test cl, cl
jne 0x4a89d2
mov esi, dword [esi]
lea ecx, [esp + 0x430]
lea ebx, [ebx]
mov al, byte [esi]
inc esi
mov byte [ecx], al
inc ecx
test al, al
jne 0x4a89f0
push ebx
push 0
push 0
push 1
lea ecx, [esp + 0x440]
push ecx
lea edx, [esp + 0x5c]
push edx
push edi
call fcn.00447670
add esp, 0x1c
mov dword [0x637658], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4a8a4c
push str.query_hotlink
push edi
call fcn.004f5140
mov eax, dword [ebp + 0xc]
push eax
push 2
push edi
call fcn.004f0c90
add esp, 0x14
mov dword [0x637658], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [0x637658], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [0x637658], edi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret