Function at 0x46f4ff
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov ebx, 0x550d5c
mov esi, 0x550d80
mov edi, 0x550d7c
cmp dword [0x52eb3c], 0
jne 0x46f530
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jl 0x46f530
xor eax, eax
jmp 0x470787
cmp dword [0x52eb48], 0
je 0x46f540
xor eax, eax
jmp 0x470787
mov dword [0x52eb48], 1
xor edx, edx
mov dword [0x52eb38], edx
push 0
push 0x550d84
push dword [ebp + 8]
call fcn.004f9e67
mov dword [0x550d68], eax
cmp dword [0x550d68], 0
je 0x46f57e
mov ecx, dword [0x550d68]
cmp dword [ecx + 0x61c], 0
jne 0x46f58c
xor eax, eax
mov dword [0x52eb48], eax
xor eax, eax
jmp 0x470787
mov edx, dword [0x550d68]
mov ecx, dword [edx + 0x7ec]
mov dword [0x550d44], ecx
mov eax, dword [0x550d68]
cmp dword [eax + 0x660], 1
je 0x46f5c4
mov edx, dword [0x550d68]
cmp dword [edx + 0x660], 2
jne 0x46f5d7
cmp dword [0x533f30], 1
jne 0x46f5d7
mov ecx, dword [0x550d68]
mov eax, dword [ecx + 0x7ec]
dec eax
add dword [0x550d44], eax
mov edx, dword [0x550d68]
cmp byte [edx + 0x638], 1
jne 0x46f614
mov ecx, dword [0x550d68]
cmp dword [ecx + 0x748], 0
je 0x46f614
mov eax, dword [0x550d68]
cmp byte [eax + 0x654], 1
jne 0x46f614
mov edx, dword [0x550d84]
add edx, 3
mov dword [0x550d40], edx
jmp 0x46f61e
mov dword [0x550d40], 2
movzx ecx, word [ebp + 0xc]
mov dword [0x550d94], ecx
mov eax, dword [ebp + 0xc]
shr eax, 0x10
and ax, 0xffff
movzx edx, ax
mov dword [0x550d98], edx
mov ecx, dword [0x550d94]
cmp ecx, dword [0x550d40]
jge 0x46f657
xor eax, eax
mov dword [0x52eb48], eax
xor eax, eax
jmp 0x470787
mov edx, dword [0x550d98]
cmp edx, dword [0x550d90]
jl 0x46f674
xor ecx, ecx
mov dword [0x52eb48], ecx
xor eax, eax
jmp 0x470787
cmp dword [0x550d98], 0
jge 0x46f68c
xor edx, edx
mov dword [0x52eb48], edx
xor eax, eax
jmp 0x470787
mov edx, dword [0x550d68]
mov ecx, dword [edx + 0x61c]
mov eax, dword [ecx + 0x34]
mov dword [ebx], eax
mov edx, dword [0x550d68]
mov ecx, dword [edx + 0x630]
mov eax, dword [0x550d68]
sub ecx, dword [eax + 0x634]
mov dword [0x550d48], ecx
jmp 0x46f6d9
mov edx, dword [0x550d68]
mov ecx, dword [edx + 0x61c]
cmp ecx, dword [ebx]
je 0x46f6e2
mov eax, dword [ebx]
mov edx, dword [eax + 0x34]
mov dword [ebx], edx
dec dword [0x550d48]
cmp dword [0x550d48], 0
jg 0x46f6bc
cmp dword [ebx], 0
jne 0x46f6f6
xor ecx, ecx
mov dword [0x52eb48], ecx
xor eax, eax
jmp 0x470787
xor edx, edx
mov dword [0x550d54], edx
mov ecx, dword [ebx]
mov eax, dword [ecx + 4]
mov dword [0x550d4c], eax
mov edx, dword [0x550d90]
sub edx, dword [0x550d44]
dec edx
mov dword [0x550d50], edx
mov ecx, dword [0x550d68]
mov eax, dword [ecx + 0x61c]
cmp eax, dword [ebx]
je 0x46f80c
mov edx, dword [0x550d44]
sub dword [0x550d50], edx
inc dword [0x550d54]
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x34]
mov dword [ebx], eax
mov edx, dword [ebx]
mov ecx, dword [edx + 4]
cmp ecx, dword [0x550d4c]
je 0x46f71b
mov eax, dword [ebx]
mov edx, dword [eax + 4]
mov dword [0x550d4c], edx
mov ecx, dword [0x550d68]
cmp dword [ecx + 0x660], 3
je 0x46f786
mov eax, dword [0x550d68]
cmp dword [eax + 0x660], 2
jne 0x46f7a0
cmp dword [0x533f30], 2
jne 0x46f7a0
mov edx, dword [0x550d68]
mov eax, dword [edx + 0x7ec]
mov ecx, 3
cdq
idiv ecx
sub dword [0x550d50], eax
mov eax, dword [0x550d44]
neg eax
cmp eax, dword [0x550d50]
jle 0x46f71b
dec dword [0x550d54]
mov edx, dword [0x550d44]
add dword [0x550d50], edx
mov ecx, dword [0x550d68]
cmp dword [ecx + 0x660], 3
je 0x46f7eb
mov eax, dword [0x550d68]
cmp dword [eax + 0x660], 2
jne 0x46f805
cmp dword [0x533f30], 2
jne 0x46f805
mov edx, dword [0x550d68]
mov eax, dword [edx + 0x7ec]
mov ecx, 3
cdq
idiv ecx
add dword [0x550d50], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x30]
mov dword [ebx], edx
cmp dword [ebx], 0
jne 0x46f820
xor ecx, ecx
mov dword [0x52eb48], ecx
xor eax, eax
jmp 0x470787
mov edx, dword [ebx]
mov ecx, dword [edx + 4]
mov dword [0x550d4c], ecx
mov eax, dword [0x550d50]
mov dword [0x550d58], eax
jmp 0x47076c
mov edx, dword [0x550d58]
cmp edx, dword [0x550d98]
jg 0x4706e5
mov ecx, dword [0x550d58]
add ecx, dword [0x550d44]
cmp ecx, dword [0x550d98]
jle 0x4706e5
push dword [0x550d94]
push dword [0x550d40]
mov eax, dword [ebx]
push dword [eax]
push dword [0x550d68]
call fcn.0046ee71
mov dword [0x550d70], eax
cmp dword [0x550d70], 0
jl 0x470775
mov edx, dword [ebx]
mov ecx, dword [edx]
mov eax, dword [0x550d70]
cmp byte [ecx + eax], 0x20
je 0x470775
mov edx, dword [ebx]
mov ecx, dword [edx]
mov eax, dword [0x550d70]
cmp byte [ecx + eax], 9
je 0x470775
mov edx, dword [ebx]
mov dword [0x550d60], edx
jmp 0x46f8ca
mov ecx, dword [eax + 0x34]
mov dword [0x550d60], ecx
mov edx, dword [0x550d68]
mov ecx, dword [edx + 0x61c]
mov eax, dword [0x550d60]
cmp ecx, eax
je 0x46f8ea
mov edx, dword [eax + 0x34]
mov ecx, dword [edx + 4]
cmp ecx, dword [eax + 4]
je 0x46f8c1
cmp dword [0x550d60], 0
je 0x470775
mov byte [0x551183], 0
mov eax, dword [0x550d60]
mov dword [0x550d64], eax
jmp 0x46f98d
mov edx, dword [eax + 0xc]
test edx, edx
jle 0x46f947
mov dword [0x550d78], edx
mov eax, dword [eax]
mov dword [esi], eax
jmp 0x46f928
inc dword [esi]
dec dword [0x550d78]
mov ecx, dword [esi]
cmp byte [ecx], 0x20
jne 0x46f938
cmp dword [0x550d78], 0
jg 0x46f920
mov eax, dword [esi]
cmp byte [eax], 0
jne 0x46f951
mov dword [esi], 0x52eb4c
jmp 0x46f951
mov edx, dword [0x550d64]
mov ecx, dword [edx]
mov dword [esi], ecx
push 0x551183
call fcn.005183dc
pop ecx
push eax
push dword [esi]
call fcn.005183dc
pop ecx
pop edx
add edx, eax
cmp edx, 0x3b5
ja 0x46f9a8
push dword [esi]
push 0x551183
call fcn.00518300
add esp, 8
mov eax, dword [0x550d64]
mov ecx, dword [eax + 0x30]
mov dword [0x550d64], ecx
mov eax, dword [0x550d64]
test eax, eax
je 0x46f9a8
mov edx, dword [eax + 4]
mov ecx, dword [0x550d60]
cmp edx, dword [ecx + 4]
je 0x46f90d
mov eax, dword [0x550d60]
mov edx, dword [eax]
push esi
push edi
mov edi, edx
mov esi, 0x550d9c
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 [0x550d60]
cmp eax, dword [ebx]
jne 0x46f9ea
xor edx, edx
mov dword [0x550d78], edx
jmp 0x46fa0a
mov dword [0x550d78], 1
push 0x550d9c
call fcn.005183dc
pop ecx
add eax, dword [0x550d70]
mov dword [0x550d70], eax
mov ecx, dword [0x550d60]
mov eax, dword [ecx + 0x30]
mov dword [0x550d60], eax
jmp 0x46fb26
cmp eax, dword [ebx]
jne 0x46fa29
xor edx, edx
mov dword [0x550d78], edx
mov edx, dword [eax + 0xc]
test edx, edx
jle 0x46fae2
mov dword [0x550d74], edx
mov eax, dword [eax]
mov dword [esi], eax
jmp 0x46fa48
inc dword [esi]
dec dword [0x550d74]
mov ecx, dword [esi]
mov al, byte [ecx]
cmp al, 0x20
je 0x46fa54
cmp al, 9
jne 0x46fa5d
cmp dword [0x550d74], 0
jg 0x46fa40
mov edx, dword [esi]
cmp byte [edx], 0
je 0x46faaf
push dword [esi]
push 0x550d9c
call fcn.00518300
add esp, 8
cmp dword [0x550d78], 0
je 0x46fa8f
push dword [esi]
call fcn.005183dc
pop ecx
add eax, dword [0x550d70]
mov dword [0x550d70], eax
mov ecx, dword [0x550d60]
cmp ecx, dword [ebx]
jne 0x46fb18
mov eax, dword [0x550d60]
mov edx, dword [eax + 0xc]
sub edx, dword [0x550d74]
sub dword [0x550d70], edx
jmp 0x46fb18
push 0x52eb4f
push 0x550d9c
call fcn.00518300
add esp, 8
cmp dword [0x550d78], 0
je 0x46fad0
inc dword [0x550d70]
mov ecx, dword [0x550d60]
cmp ecx, dword [ebx]
jne 0x46fb18
dec dword [0x550d70]
jmp 0x46fb18
mov eax, dword [0x550d60]
push dword [eax]
push 0x550d9c
call fcn.00518300
add esp, 8
cmp dword [0x550d78], 0
je 0x46fb18
mov edx, dword [0x550d60]
push dword [edx]
call fcn.005183dc
pop ecx
add eax, dword [0x550d70]
mov dword [0x550d70], eax
mov ecx, dword [0x550d60]
mov eax, dword [ecx + 0x30]
mov dword [0x550d60], eax
mov eax, dword [0x550d60]
test eax, eax
je 0x46fb3d
mov edx, dword [eax + 4]
mov ecx, dword [ebx]
cmp edx, dword [ecx + 4]
je 0x46fa1d
cmp dword [0x550d70], 0
jl 0x470775
push 0x550d9c
call fcn.005183dc
pop ecx
cmp eax, dword [0x550d70]
jle 0x470775
mov eax, 0x550d9c
add eax, dword [0x550d70]
mov dword [esi], eax
jmp 0x46fb72
dec dword [esi]
mov edx, 0x550d9c
cmp edx, dword [esi]
jae 0x46fb87
mov ecx, dword [esi]
mov al, byte [ecx]
cmp al, 0x20
je 0x46fb87
cmp al, 9
jne 0x46fb70
mov edx, dword [esi]
cmp byte [edx], 0x20
je 0x46fb95
mov ecx, dword [esi]
cmp byte [ecx], 9
jne 0x46fbbd
inc dword [esi]
mov eax, dword [esi]
cmp byte [eax], 0
je 0x470775
push dword [esi]
call fcn.005183dc
pop ecx
inc eax
push eax
push dword [esi]
push 0x550d9c
call fcn.00518210
add esp, 0xc
jmp 0x46fbd6
push dword [esi]
call fcn.005183dc
pop ecx
inc eax
push eax
push dword [esi]
push 0x550d9c
call fcn.00518210
add esp, 0xc
mov dword [esi], 0x550d9c
jmp 0x46fbec
mov edx, dword [esi]
mov al, byte [edx]
cmp al, 0x20
je 0x46fbf3
cmp al, 9
je 0x46fbf3
inc dword [esi]
mov edx, dword [esi]
cmp byte [edx], 0
jne 0x46fbde
mov ecx, dword [esi]
cmp byte [ecx], 0
je 0x46fc01
mov eax, dword [esi]
mov byte [eax], 0
jmp 0x46fc05
xor edx, edx
mov dword [esi], edx
push 0xf
push 0x550d9c
call fcn.004e51c7
cmp byte [0x550d9c], 0
je 0x470775
cmp dword [0x534d3c], 0
je 0x46fc9a
mov ecx, dword [ebp + 8]
mov dword [0x52d134], ecx
xor eax, eax
mov dword [0x53506c], eax
push 1
push 0x1a
push 0x52eb52
push 0
call fcn.004d67d1
test eax, eax
je 0x46fc92
cmp dword [ebp + 0x10], 1
jne 0x46fc6a
mov edx, dword [ebp + 8]
mov dword [0x52d134], edx
push 0
push 0x1a
push 0x52eb5b
push 0
call fcn.004d67d1
inc dword [0x52eb38]
mov ecx, dword [ebp + 8]
mov dword [0x52eb34], ecx
xor eax, eax
mov dword [0x52d134], eax
xor edx, edx
mov dword [0x52eb48], edx
mov eax, 1
jmp 0x470787
xor edx, edx
mov dword [0x52d134], edx
push 0x23
push 0x550d9c
call fcn.0051833c
add esp, 8
test eax, eax
je 0x46fe7f
push 0x2c
push 0x550d9c
call fcn.0051833c
add esp, 8
mov dword [esi], eax
cmp dword [esi], 0
je 0x46fccc
mov ecx, dword [esi]
mov byte [ecx], 0
mov dword [esi], 0x550d9c
jmp 0x46fd0c
cmp al, 0x23
je 0x46fd14
cmp al, 0x40
je 0x46fd0a
cmp al, 0x2b
je 0x46fd0a
cmp al, 0x25
je 0x46fd14
mov eax, dword [esi]
cmp byte [eax], 0x2e
jne 0x46fcf4
test byte [0x531b24], 0x20
jne 0x46fd0a
mov edx, dword [esi]
cmp byte [edx], 0x21
jne 0x46fd04
test byte [0x531b24], 0x40
jne 0x46fd14
xor ecx, ecx
mov dword [esi], ecx
jmp 0x46fd14
inc dword [esi]
mov eax, dword [esi]
mov al, byte [eax]
test al, al
jne 0x46fcd4
cmp dword [esi], 0
je 0x46fe7f
mov edx, dword [esi]
cmp byte [edx], 0
je 0x46fe7f
mov ecx, dword [esi]
cmp byte [ecx + 1], 0
je 0x46fe7f
mov dword [esi], 0x550d9c
jmp 0x46fd62
cmp al, 0x23
je 0x46fd6a
mov eax, dword [esi]
cmp byte [eax], 0x25
jne 0x46fd50
test byte [0x531b24], 0x20
jne 0x46fd6a
mov edx, dword [esi]
cmp byte [edx], 0x21
jne 0x46fd60
test byte [0x531b24], 0x40
jne 0x46fd6a
inc dword [esi]
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
jne 0x46fd3c
push dword [esi]
call fcn.005183dc
pop ecx
mov dword [0x550d70], eax
cmp dword [0x550d70], 0
jle 0x46fdcf
mov edx, dword [esi]
mov ecx, dword [0x550d70]
xor eax, eax
mov al, byte [edx + ecx - 1]
cmp eax, 0x3a
jge 0x46fda9
sub eax, 0x22
je 0x46fdc2
sub eax, 7
je 0x46fdc2
sub eax, 3
je 0x46fdc2
sub eax, 2
je 0x46fdc2
jmp 0x46fdcf
add eax, 0xffffffc6
sub eax, 2
jb 0x46fdc2
sub eax, 2
je 0x46fdc2
sub eax, 0x1f
je 0x46fdc2
sub eax, 0x20
je 0x46fdc2
jmp 0x46fdcf
mov edx, dword [esi]
mov ecx, dword [0x550d70]
mov byte [edx + ecx - 1], 0
mov eax, dword [esi]
cmp byte [eax], 0
je 0x470775
mov edx, dword [0x550d68]
add edx, 4
push edx
push dword [esi]
call fcn.005185a0
add esp, 8
test eax, eax
je 0x470775
inc dword [0x52eb38]
mov ecx, dword [ebp + 8]
mov dword [0x52eb34], ecx
cmp dword [ebp + 0x10], 1
jne 0x46fe36
push dword [esi]
push 0x52eb64
push 0x555704
call sub.USER32.dll_wsprintfA
add esp, 0xc
push 0
push 0
push 0
push 0
push 0x555704
push dword [ebp + 8]
call fcn.00489ea4
jmp 0x46fe6e
cmp dword [ebp + 0x10], 2
jne 0x46fe6e
push dword [esi]
call fcn.005183dc
pop ecx
inc eax
push eax
push dword [esi]
push 0x550d9c
call fcn.00518210
add esp, 0xc
call fcn.004a56ad
push 1
call fcn.004a3018
push dword [ebp + 0xc]
push 0x14
push dword [ebp + 8]
call fcn.004a5213
xor eax, eax
mov dword [0x52eb48], eax
mov eax, 1
jmp 0x470787
push 0x550d9c
call fcn.005183dc
pop ecx
cmp eax, 2
jb 0x47012e
push 0x2e
push 0x550d9e
call fcn.0051833c
add esp, 8
test eax, eax
je 0x47012e
xor edx, edx
mov dl, byte [0x550d9c]
cmp edx, 0x3c
jg 0x46fec8
je 0x46fed4
sub edx, 0x22
je 0x46fed4
add edx, 0xfffffffb
sub edx, 2
jb 0x46fed4
jmp 0x46fef2
sub edx, 0x5b
je 0x46fed4
sub edx, 0x20
je 0x46fed4
jmp 0x46fef2
push 0x550d9c
call fcn.005183dc
pop ecx
push eax
push 0x550d9d
push 0x550d9c
call fcn.00518210
add esp, 0xc
push 0x550d9c
call fcn.005183dc
pop ecx
mov dword [0x550d70], eax
cmp dword [0x550d70], 0
jle 0x46ff54
mov ecx, dword [0x550d70]
xor eax, eax
mov al, byte [ecx + 0x550d9b]
cmp eax, 0x2e
jg 0x46ff36
je 0x46ff47
sub eax, 0x22
je 0x46ff47
sub eax, 5
je 0x46ff47
sub eax, 2
je 0x46ff47
sub eax, 3
je 0x46ff47
jmp 0x46ff54
sub eax, 0x3e
je 0x46ff47
sub eax, 0x1f
je 0x46ff47
sub eax, 0x20
je 0x46ff47
jmp 0x46ff54
mov edx, dword [0x550d70]
mov byte [edx + 0x550d9b], 0
cmp byte [0x550d9c], 0
je 0x470775
mov dword [0x550d70], 0x3e7
xor ecx, ecx
mov dword [0x52eb38], ecx
push 0x3a
push 0x550d9c
call fcn.0051833c
add esp, 8
test eax, eax
je 0x46ffff
push 7
push 0x52eb6e
push 0x550d9c
call fcn.00518638
add esp, 0xc
test eax, eax
jne 0x46ffad
mov dword [0x550d70], 0xb
jmp 0x4700a1
push 8
push 0x52eb77
push 0x550d9c
call fcn.00518638
add esp, 0xc
test eax, eax
jne 0x46ffd4
mov dword [0x550d70], 0xc
jmp 0x4700a1
push 6
push 0x52eb81
push 0x550d9c
call fcn.00518638
add esp, 0xc
test eax, eax
jne 0x470775
mov dword [0x550d70], 0xa
jmp 0x4700a1
push 4
push 0x52eb89
push 0x550d9c
call fcn.00518638
add esp, 0xc
test eax, eax
jne 0x470023
mov dword [0x550d70], 8
jmp 0x47007e
push 4
push 0x52eb8f
push 0x550d9c
call fcn.00518638
add esp, 0xc
test eax, eax
jne 0x470047
mov dword [0x550d70], 8
jmp 0x47007e
push 0x40
push 0x550d9c
call fcn.0051833c
add esp, 8
test eax, eax
je 0x470775
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x470775
inc dword [0x52eb38]
mov dword [0x550d70], 6
cmp dword [0x550d70], 8
jne 0x4700a1
push 0x2e
push 0x550da0
call fcn.0051833c
add esp, 8
mov dword [esi], eax
cmp dword [esi], 0
je 0x470775
push 0x550d9c
call fcn.005183dc
pop ecx
cmp eax, dword [0x550d70]
jb 0x470775
inc dword [0x52eb38]
mov eax, dword [ebp + 8]
mov dword [0x52eb34], eax
cmp dword [ebp + 0x10], 1
jne 0x4700f4
cmp dword [0x52eb38], 2
jne 0x4700e1
push 0x550d9c
call fcn.004cf70c
jmp 0x47011c
push 0
push 0x555aeb
push 0x550d9c
call fcn.004f260e
jmp 0x47011c
cmp dword [ebp + 0x10], 2
jne 0x47011c
cmp dword [0x52eb38], 1
jne 0x47011c
call fcn.004a56ad
push 1
call fcn.004a4465
push dword [ebp + 0xc]
push 0x1b
push dword [ebp + 8]
call fcn.004a5213
xor edx, edx
mov dword [0x52eb48], edx
mov eax, 1
jmp 0x470787
mov edx, dword [0x550d68]
cmp byte [edx + 0x638], 0
je 0x47015e
mov ecx, dword [0x550d68]
cmp byte [ecx + 0x638], 1
je 0x47015e
mov eax, dword [0x550d68]
cmp byte [eax + 0x638], 2
jne 0x470775
call fcn.0046f19c
push 0x551632
push 0x55156a
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x470180
mov byte [0x551632], 0
push 0x551696
push 0x5515ce
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x47019d
mov byte [0x551696], 0
mov edx, dword [0x550d68]
cmp byte [edx + 0x638], 1
jne 0x4703ec
xor ecx, ecx
mov dword [ebx], ecx
xor eax, eax
mov dword [edi], eax
jmp 0x4702ea
mov edx, dword [edi]
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
cmp byte [edx*4 + 0x55156a], 0
je 0x4702e8
xor ecx, ecx
mov dword [0x550d70], ecx
mov eax, dword [0x550d68]
cmp dword [eax + 0x614], 0
je 0x470265
mov edx, dword [0x550d68]
add edx, 0x610
push edx
imul ecx, esi, 0x64
add ecx, 0x55156a
push ecx
call fcn.0046b3fb
mov dword [0x550d60], eax
mov eax, dword [0x550d68]
mov edx, dword [eax + 0x608]
mov dword [ebx], edx
jmp 0x47025d
cmp esi, dword [0x550d60]
jne 0x470250
mov ecx, dword [esi]
push esi
push edi
mov edi, ecx
mov esi, 0x550d9c
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 0x4702e3
mov eax, dword [ebx]
mov edx, dword [eax + 0x30]
mov dword [ebx], edx
inc dword [0x550d70]
mov esi, dword [ebx]
test esi, esi
jne 0x470219
jmp 0x4702e3
mov eax, dword [0x550d68]
mov edx, dword [eax + 0x608]
mov dword [ebx], edx
jmp 0x4702de
mov eax, dword [ebx]
mov edx, dword [eax + 8]
mov ecx, dword [edi]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
movzx ecx, byte [ecx*4 + 0x55156a]
cmp edx, ecx
jne 0x4702d1
imul edx, dword [edi], 0x64
add edx, 0x55156a
push edx
push dword [eax]
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x4702d1
mov eax, dword [ebx]
mov eax, dword [eax]
push edi
mov edi, eax
mov esi, 0x550d9c
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 0x4702e3
mov eax, dword [ebx]
mov edx, dword [eax + 0x30]
mov dword [ebx], edx
inc dword [0x550d70]
cmp dword [ebx], 0
jne 0x470274
cmp dword [ebx], 0
jne 0x4702f5
inc dword [edi]
mov esi, dword [edi]
cmp esi, 4
jl 0x4701bd
cmp dword [ebx], 0
je 0x4703ec
inc dword [0x52eb38]
mov eax, dword [ebp + 8]
mov dword [0x52eb34], eax
cmp dword [ebp + 0x10], 1
jne 0x470388
cmp byte [0x54743c], 0
je 0x4703db
mov esi, 0x550d9c
mov edi, 0x54743c
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 eax, dword [ebx]
mov edx, dword [eax]
mov edi, edx
mov esi, 0x555aeb
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]
push 0
push 0
push 1
push 0x555aeb
push 0x550d9c
push dword [ebp + 8]
call fcn.00489ea4
jmp 0x4703db
cmp dword [ebp + 0x10], 2
jne 0x4703be
call fcn.004a56ad
push 1
push 1
push dword [0x550d70]
push 0x425
push dword [ebp + 8]
call fcn.00416f60
call fcn.004a3142
push dword [ebp + 0xc]
push 3
push dword [ebp + 8]
call fcn.004a5213
jmp 0x4703db
cmp dword [ebp + 0x10], 3
jne 0x4703db
push 1
push 1
push dword [0x550d70]
push 0x425
push dword [ebp + 8]
call fcn.00416f60
xor eax, eax
mov dword [0x52eb48], eax
mov eax, 1
jmp 0x470787
cmp dword [0x5338f0], 0
je 0x47056e
xor edx, edx
mov dword [0x550d6c], edx
xor ecx, ecx
mov dword [edi], ecx
jmp 0x47049c
mov eax, dword [edi]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
cmp byte [eax*4 + 0x55156a], 0
je 0x47049a
mov edx, dword [0x5338f0]
mov dword [0x550d6c], edx
jmp 0x470488
cmp dword [eax + 0x2a0], 0
je 0x470477
imul ecx, dword [edi], 0x64
add ecx, 0x55156a
push ecx
push eax
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x470477
mov eax, dword [0x550d6c]
push edi
mov esi, 0x550d9c
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
jmp 0x470491
mov eax, dword [0x550d6c]
mov edx, dword [eax + 0x2ac]
mov dword [0x550d6c], edx
mov eax, dword [0x550d6c]
test eax, eax
jne 0x47042a
cmp dword [0x550d6c], 0
jne 0x4704a5
inc dword [edi]
cmp dword [edi], 4
jl 0x47040a
cmp dword [0x550d6c], 0
je 0x47056e
inc dword [0x52eb38]
mov edx, dword [ebp + 8]
mov dword [0x52eb34], edx
cmp dword [ebp + 0x10], 1
jne 0x47053e
cmp byte [0x547540], 0
je 0x47055d
mov esi, 0x550d9c
mov edi, 0x547540
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 eax, dword [0x550d6c]
mov esi, 0x555aeb
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]
push 0
push 0
push 1
push 0x555aeb
push 0x550d9c
push dword [ebp + 8]
call fcn.00489ea4
jmp 0x47055d
cmp dword [ebp + 0x10], 2
jne 0x47055d
call fcn.004a56ad
push 0
call fcn.004a3506
push dword [ebp + 0xc]
push 7
push dword [ebp + 8]
call fcn.004a5213
xor eax, eax
mov dword [0x52eb48], eax
mov eax, 1
jmp 0x470787
cmp dword [0x536514], 0
je 0x470775
mov edx, dword [0x550d68]
cmp byte [edx + 0x638], 2
jne 0x470775
mov ecx, dword [0x550d68]
cmp byte [ecx + 0x639], 2
jne 0x470775
xor eax, eax
mov dword [ebx], eax
xor edx, edx
mov dword [edi], edx
jmp 0x47061e
mov ecx, dword [edi]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
cmp byte [ecx*4 + 0x55156a], 0
je 0x47061c
mov eax, dword [0x536514]
mov dword [ebx], eax
jmp 0x470611
imul edx, dword [edi], 0x64
add edx, 0x55156a
push edx
push dword [eax]
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x47060a
mov ecx, dword [ebx]
mov eax, dword [ecx]
push edi
mov edi, eax
mov esi, 0x550d9c
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 0x470617
mov eax, dword [ebx]
mov edx, dword [eax + 0x30]
mov dword [ebx], edx
mov eax, dword [ebx]
test eax, eax
jne 0x4705c6
cmp dword [ebx], 0
jne 0x470623
inc dword [edi]
cmp dword [edi], 4
jl 0x4705ab
cmp dword [ebx], 0
je 0x470775
inc dword [0x52eb38]
mov edx, dword [ebp + 8]
mov dword [0x52eb34], edx
cmp dword [ebp + 0x10], 1
jne 0x4706b7
cmp byte [0x547234], 0
je 0x4706d4
mov esi, 0x550d9c
mov edi, 0x547234
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 eax, dword [ebx]
mov edx, dword [eax]
mov edi, edx
mov esi, 0x555aeb
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]
push 0
push 0
push 1
push 0x555aeb
push 0x550d9c
push dword [ebp + 8]
call fcn.00489ea4
jmp 0x4706d4
cmp dword [ebp + 0x10], 2
jne 0x4706d4
call fcn.004a56ad
call fcn.004a30ea
push dword [ebp + 0xc]
push 2
push dword [ebp + 8]
call fcn.004a5213
xor eax, eax
mov dword [0x52eb48], eax
mov eax, 1
jmp 0x470787
mov edx, dword [ebx]
mov ecx, dword [edx + 0x30]
mov dword [ebx], ecx
cmp dword [ebx], 0
je 0x470775
mov eax, dword [0x550d44]
add dword [0x550d58], eax
mov edx, dword [ebx]
mov ecx, dword [edx + 4]
cmp ecx, dword [0x550d4c]
je 0x470758
mov eax, dword [ebx]
mov edx, dword [eax + 4]
mov dword [0x550d4c], edx
mov ecx, dword [0x550d68]
cmp dword [ecx + 0x660], 3
je 0x47073e
mov eax, dword [0x550d68]
cmp dword [eax + 0x660], 2
jne 0x470758
cmp dword [0x533f30], 2
jne 0x470758
mov edx, dword [0x550d68]
mov eax, dword [edx + 0x7ec]
mov ecx, 3
cdq
idiv ecx
add dword [0x550d58], eax
mov eax, dword [0x550d90]
sub eax, dword [0x550d44]
dec eax
cmp eax, dword [0x550d58]
jl 0x470775
cmp dword [ebx], 0
jne 0x46f83a
xor edx, edx
mov dword [0x52eb38], edx
xor ecx, ecx
mov dword [0x52eb48], ecx
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0xc