Function at 0x4941be
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff3e0
push ebx
push esi
push edi
cmp dword [0x56677c], 0
je 0x4941da
xor eax, eax
jmp 0x495178
mov dword [0x56677c], 1
cmp dword [0x566770], 0
jne 0x494214
push 0x10
call sub.USER32.dll_GetKeyState
movsx edx, ax
and edx, 0x8000
cmp edx, 0x8000
je 0x494214
xor ecx, ecx
mov dword [0x56677c], ecx
xor eax, eax
jmp 0x495178
xor edx, edx
mov dword [0x56676c], edx
push 0
lea ecx, [ebp - 0x40]
push ecx
push dword [ebp + 8]
call fcn.00521fcc
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x49424b
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x810], 0
je 0x49424b
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x684], 0
jne 0x49425a
xor ecx, ecx
mov dword [0x56677c], ecx
xor eax, eax
jmp 0x495178
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0xb6c]
mov dword [ebp - 0x18], ecx
push dword [ebp - 0x18]
call fcn.0041261f
test eax, eax
jne 0x494280
xor eax, eax
mov dword [0x56677c], eax
xor eax, eax
jmp 0x495178
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx + 0x99c]
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x70c], 1
je 0x4942aa
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x70c], 2
jne 0x4942b6
cmp dword [0x56c29c], 1
jne 0x4942b6
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x99c]
dec eax
add esi, eax
movzx edx, word [ebp + 0xc]
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp + 0xc]
shr ecx, 0x10
and cx, 0xffff
movzx eax, cx
mov dword [ebp - 0x24], eax
push 1
lea edx, [ebp - 0x28]
push edx
mov ecx, dword [ebp - 0x1c]
push dword [ecx + 0x810]
mov eax, dword [ebp - 0x1c]
push dword [eax]
call sub.USER32.dll_MapWindowPoints
cmp dword [ebp - 0x28], 2
jge 0x4942fc
xor edx, edx
mov dword [0x56677c], edx
xor eax, eax
jmp 0x495178
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x34]
jl 0x494313
xor ecx, ecx
mov dword [0x56677c], ecx
xor eax, eax
jmp 0x495178
cmp dword [ebp - 0x24], 0
jge 0x494328
xor edx, edx
mov dword [0x56677c], edx
xor eax, eax
jmp 0x495178
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x684]
mov ebx, dword [ecx + 0x44]
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0x6b4]
mov ecx, dword [ebp - 0x1c]
sub edx, dword [ecx + 0x6b8]
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0
jle 0x494366
mov eax, dword [ebp - 0x1c]
cmp ebx, dword [eax + 0x684]
je 0x494366
mov ebx, dword [ebx + 0x44]
dec dword [ebp - 4]
cmp dword [ebp - 4], 0
jg 0x49434f
test ebx, ebx
jne 0x494379
xor edx, edx
mov dword [0x56677c], edx
xor eax, eax
jmp 0x495178
mov edi, dword [ebx + 8]
mov ecx, dword [ebp - 0x34]
sub ecx, esi
dec ecx
mov eax, dword [ebp - 0x1c]
cmp ebx, dword [eax + 0x684]
je 0x494415
sub ecx, esi
mov ebx, dword [ebx + 0x44]
cmp edi, dword [ebx + 8]
je 0x494382
mov edi, dword [ebx + 8]
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x70c], 3
je 0x4943bf
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x70c], 2
jne 0x4943d4
cmp dword [0x56c29c], 2
jne 0x4943d4
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x99c]
push ecx
mov ecx, 3
cdq
idiv ecx
pop ecx
sub ecx, eax
mov eax, esi
neg eax
cmp ecx, eax
jge 0x494382
add ecx, esi
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x70c], 3
je 0x4943ff
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x70c], 2
jne 0x494412
cmp dword [0x56c29c], 2
jne 0x494412
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x99c]
mov edi, 3
cdq
idiv edi
add ecx, eax
mov ebx, dword [ebx + 0x40]
test ebx, ebx
jne 0x494427
xor eax, eax
mov dword [0x56677c], eax
xor eax, eax
jmp 0x495178
mov edi, dword [ebx + 8]
test ebx, ebx
je 0x495166
cmp ecx, dword [ebp - 0x24]
jg 0x49510d
lea eax, [esi + ecx]
cmp eax, dword [ebp - 0x24]
jle 0x49510d
push dword [ebp - 0x28]
push dword [ebx]
push dword [ebp - 0x1c]
call fcn.00493c39
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jl 0x495166
mov edx, dword [ebx]
mov ecx, dword [ebp - 0xc]
cmp byte [edx + ecx], 0x20
je 0x495166
mov eax, dword [ebx]
mov edx, dword [ebp - 0xc]
cmp byte [eax + edx], 9
je 0x495166
mov edi, ebx
jmp 0x494486
mov edi, dword [edi + 0x44]
mov eax, dword [ebp - 0x1c]
cmp edi, dword [eax + 0x684]
je 0x49449c
mov edx, dword [edi + 0x44]
mov ecx, dword [edx + 8]
cmp ecx, dword [edi + 8]
je 0x494483
test edi, edi
je 0x495166
push 0x3e7
lea eax, [ebp - 0x428]
push eax
call fcn.0042e6b1
mov dword [ebp - 8], edi
jmp 0x494527
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x10]
test eax, eax
jle 0x4944e9
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 8]
mov esi, dword [edx]
jmp 0x4944d2
inc esi
dec dword [ebp - 0x14]
cmp byte [esi], 0x20
jne 0x4944dd
cmp dword [ebp - 0x14], 0
jg 0x4944ce
cmp byte [esi], 0
jne 0x4944ee
mov esi, 0x566780
jmp 0x4944ee
mov eax, dword [ebp - 8]
mov esi, dword [eax]
lea eax, [ebp - 0x428]
push eax
call fcn.0054e28c
pop ecx
push eax
push esi
call fcn.0054e28c
pop ecx
pop edx
add edx, eax
cmp edx, 0x3b5
ja 0x494538
push esi
lea ecx, [ebp - 0x428]
push ecx
call fcn.0054e1b0
add esp, 8
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x40]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
je 0x494538
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 8]
cmp eax, dword [edi + 8]
je 0x4944ba
mov edx, dword [edi]
push edi
mov edi, edx
mov esi, 0x581808
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
cmp ebx, edi
jne 0x49456b
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x494583
mov dword [ebp - 0x14], 1
push 0x581808
call fcn.0054e28c
pop ecx
add eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov edi, dword [edi + 0x40]
jmp 0x49467a
cmp ebx, edi
jne 0x494594
xor edx, edx
mov dword [ebp - 0x14], edx
mov eax, dword [edi + 0x10]
test eax, eax
jle 0x494635
mov dword [ebp - 0x10], eax
mov esi, dword [edi]
jmp 0x4945aa
inc esi
dec dword [ebp - 0x10]
mov al, byte [esi]
cmp al, 0x20
je 0x4945b4
cmp al, 9
jne 0x4945ba
cmp dword [ebp - 0x10], 0
jg 0x4945a6
cmp byte [esi], 0
je 0x494611
push 0x581808
call fcn.0054e28c
pop ecx
push eax
push esi
call fcn.0054e28c
pop ecx
pop edx
add edx, eax
cmp edx, 0x3b5
ja 0x49468a
push esi
push 0x581808
call fcn.0054e1b0
add esp, 8
cmp dword [ebp - 0x14], 0
je 0x494602
push esi
call fcn.0054e28c
pop ecx
add eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
cmp ebx, edi
jne 0x494677
mov ecx, dword [edi + 0x10]
sub ecx, dword [ebp - 0x10]
sub dword [ebp - 0xc], ecx
jmp 0x494677
push 0x566783
push 0x581808
call fcn.0054e1b0
add esp, 8
cmp dword [ebp - 0x14], 0
je 0x49462c
inc dword [ebp - 0xc]
cmp ebx, edi
jne 0x494677
dec dword [ebp - 0xc]
jmp 0x494677
push 0x581808
call fcn.0054e28c
pop ecx
mov esi, eax
push dword [edi]
call fcn.0054e28c
pop ecx
add esi, eax
cmp esi, 0x3b5
ja 0x49468a
push dword [edi]
push 0x581808
call fcn.0054e1b0
add esp, 8
cmp dword [ebp - 0x14], 0
je 0x494677
push dword [edi]
call fcn.0054e28c
pop ecx
add eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov edi, dword [edi + 0x40]
test edi, edi
je 0x49468a
mov eax, dword [edi + 8]
cmp eax, dword [ebx + 8]
je 0x49458b
cmp dword [ebp - 0xc], 0
jl 0x495166
push 0x581808
call fcn.0054e28c
pop ecx
cmp eax, dword [ebp - 0xc]
jle 0x495166
mov esi, 0x581808
add esi, dword [ebp - 0xc]
jmp 0x4946b3
dec esi
cmp esi, 0x581808
jbe 0x4946c5
mov al, byte [esi]
cmp al, 0x20
je 0x4946c5
cmp al, 9
jne 0x4946b2
cmp byte [esi], 0x20
je 0x4946cf
cmp byte [esi], 9
jne 0x4946f2
inc esi
cmp byte [esi], 0
je 0x495166
push esi
call fcn.0054e28c
pop ecx
inc eax
push eax
push esi
push 0x581808
call fcn.0054e0c0
add esp, 0xc
jmp 0x494709
push esi
call fcn.0054e28c
pop ecx
inc eax
push eax
push esi
push 0x581808
call fcn.0054e0c0
add esp, 0xc
mov esi, 0x581808
jmp 0x494720
mov al, byte [esi]
cmp al, 0x20
je 0x49471a
cmp al, 9
jne 0x49471f
mov byte [esi], 0
jmp 0x494725
inc esi
cmp byte [esi], 0
jne 0x494710
push 0xf
push 0x581808
call fcn.0050e7f8
cmp byte [0x581808], 0
je 0x495166
cmp dword [0x56cdd8], 0
je 0x49480c
xor edx, edx
mov dword [ebp - 0x2c], edx
push 0x7f8
push 0
lea ecx, [ebp - 0xc20]
push ecx
call fcn.0054e10c
add esp, 0xc
lea eax, [ebp - 0x428]
push eax
push 0x3e7
lea edx, [ebp - 0xbf8]
push edx
call fcn.0042e5e3
push 0x581808
push 0x3e7
lea ecx, [ebp - 0x811]
push ecx
call fcn.0042e5e3
lea eax, [ebp - 0xc20]
push eax
lea edx, [ebp - 0x2c]
push edx
push 1
push 0x1d
push 0x566786
push 0
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
push dword [ecx + 0xb6c]
call fcn.004fecf0
test eax, eax
je 0x49480c
cmp dword [ebp + 0x10], 1
jne 0x4947ec
lea eax, [ebp - 0xc20]
push eax
lea edx, [ebp - 0x2c]
push edx
push 0
push 0x1d
push 0x56678f
push 0
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
push dword [ecx + 0xb6c]
call fcn.004fecf0
inc dword [0x56676c]
mov eax, dword [ebp + 8]
mov dword [0x566768], eax
xor edx, edx
mov dword [0x56677c], edx
mov eax, 1
jmp 0x495178
mov esi, 0x581808
jmp 0x494832
push dword [ebp - 0x18]
push esi
call fcn.004ee9fe
test al, al
jne 0x494831
push dword [ebp - 0x18]
push esi
call fcn.004ee9bd
test al, al
jne 0x494837
xor esi, esi
jmp 0x494837
inc esi
cmp byte [esi], 0
jne 0x494813
test esi, esi
je 0x494957
cmp byte [esi], 0
je 0x494957
push 0x2c
push esi
call fcn.0054e1ec
add esp, 8
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x494862
mov eax, dword [ebp - 0x20]
mov byte [eax], 0
test esi, esi
je 0x494957
cmp byte [esi], 0
je 0x494957
cmp byte [esi + 1], 0
je 0x494957
push esi
call fcn.0054e28c
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jle 0x4948d2
mov edx, dword [ebp - 0xc]
xor ecx, ecx
mov cl, byte [esi + edx - 1]
cmp ecx, 0x3a
jge 0x4948b1
sub ecx, 0x22
je 0x4948ca
sub ecx, 7
je 0x4948ca
sub ecx, 3
je 0x4948ca
sub ecx, 2
je 0x4948ca
jmp 0x4948d2
add ecx, 0xffffffc6
sub ecx, 2
jb 0x4948ca
sub ecx, 2
je 0x4948ca
sub ecx, 0x1f
je 0x4948ca
sub ecx, 0x20
je 0x4948ca
jmp 0x4948d2
mov eax, dword [ebp - 0xc]
mov byte [esi + eax - 1], 0
cmp byte [esi], 0
je 0x495166
inc dword [0x56676c]
mov edx, dword [ebp + 8]
mov dword [0x566768], edx
cmp dword [ebp + 0x10], 1
jne 0x494914
push esi
push 0x566798
push 0x579f7a
call sub.USER32.dll_wsprintfA
add esp, 0xc
push dword [ebp - 0x18]
push 1
push 0x579f7a
call fcn.0042e35a
jmp 0x494945
cmp dword [ebp + 0x10], 2
jne 0x494945
push esi
call fcn.0054e28c
pop ecx
inc eax
push eax
push esi
push 0x581808
call fcn.0054e0c0
add esp, 0xc
push 1
call fcn.004cd186
push dword [ebp + 0xc]
push 0x14
push dword [ebp + 8]
call fcn.004cf498
xor ecx, ecx
mov dword [0x56677c], ecx
mov eax, 1
jmp 0x495178
push 0x581808
call fcn.0054e28c
pop ecx
cmp eax, 2
jb 0x494c04
push 0x2e
push 0x58180a
call fcn.0054e1ec
add esp, 8
test eax, eax
je 0x494c04
xor edx, edx
mov dl, byte [0x581808]
cmp edx, 0x3c
jg 0x4949a0
je 0x4949ac
sub edx, 0x22
je 0x4949ac
add edx, 0xfffffffb
sub edx, 2
jb 0x4949ac
jmp 0x4949cb
sub edx, 0x5b
je 0x4949ac
sub edx, 0x20
je 0x4949ac
jmp 0x4949cb
push 0x581809
call fcn.0054e28c
pop ecx
inc eax
push eax
push 0x581809
push 0x581808
call fcn.0054e0c0
add esp, 0xc
push 0x581808
call fcn.0054e28c
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jle 0x494a44
mov ecx, dword [ebp - 0xc]
xor eax, eax
mov al, byte [ecx + 0x581807]
cmp eax, 0x2e
jg 0x494a07
je 0x494a18
sub eax, 0x22
je 0x494a18
sub eax, 5
je 0x494a18
sub eax, 2
je 0x494a18
sub eax, 3
je 0x494a18
jmp 0x494a44
sub eax, 0x3e
je 0x494a18
sub eax, 0x1f
je 0x494a18
sub eax, 0x20
je 0x494a24
jmp 0x494a44
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x581807], 0
jmp 0x494a44
push 0x5667a4
push 0x581808
call fcn.0054e5a0
add esp, 8
test eax, eax
jne 0x494a44
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x581807], 0
cmp byte [0x581808], 0
je 0x495166
xor eax, eax
mov dword [0x56676c], eax
push 0x3a
push 0x581808
call fcn.0054e1ec
add esp, 8
test eax, eax
je 0x494adb
push 7
push 0x5667a8
push 0x581808
call fcn.0054e4e8
add esp, 0xc
test eax, eax
jne 0x494a8f
mov dword [ebp - 0xc], 0xb
jmp 0x494b7c
push 8
push 0x5667b1
push 0x581808
call fcn.0054e4e8
add esp, 0xc
test eax, eax
jne 0x494ab3
mov dword [ebp - 0xc], 0xc
jmp 0x494b7c
push 6
push 0x5667bb
push 0x581808
call fcn.0054e4e8
add esp, 0xc
test eax, eax
jne 0x495166
mov dword [ebp - 0xc], 0xa
jmp 0x494b7c
push 4
push 0x5667c3
push 0x581808
call fcn.0054e4e8
add esp, 0xc
test eax, eax
jne 0x494afc
mov dword [ebp - 0xc], 8
jmp 0x494b5d
push 4
push 0x5667c9
push 0x581808
call fcn.0054e4e8
add esp, 0xc
test eax, eax
jne 0x494b1d
mov dword [ebp - 0xc], 8
jmp 0x494b5d
push 0x40
push 0x581808
call fcn.0054e1ec
add esp, 8
test eax, eax
je 0x495166
push 0x10
call sub.USER32.dll_GetKeyState
movsx edx, ax
and edx, 0x8000
cmp edx, 0x8000
jne 0x495166
inc dword [0x56676c]
mov dword [ebp - 0xc], 6
cmp dword [ebp - 0xc], 8
jne 0x494b7c
push 0x2e
push 0x58180c
call fcn.0054e1ec
add esp, 8
mov esi, eax
test esi, esi
je 0x495166
push 0x581808
call fcn.0054e28c
pop ecx
cmp eax, dword [ebp - 0xc]
jl 0x495166
inc dword [0x56676c]
mov eax, dword [ebp + 8]
mov dword [0x566768], eax
cmp dword [ebp + 0x10], 1
jne 0x494bcf
cmp dword [0x56676c], 2
jne 0x494bbc
push dword [ebp - 0x18]
push 0x581808
call fcn.004f6f87
jmp 0x494bf2
push 0
push 0x57a361
push 0x581808
call fcn.00519d16
jmp 0x494bf2
cmp dword [ebp + 0x10], 2
jne 0x494bf2
cmp dword [0x56676c], 1
jne 0x494bf2
push 1
call fcn.004ce6fb
push dword [ebp + 0xc]
push 0x1b
push dword [ebp + 8]
call fcn.004cf498
xor edx, edx
mov dword [0x56677c], edx
mov eax, 1
jmp 0x495178
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x6bc]
test eax, eax
je 0x494c1f
cmp eax, 1
je 0x494c1f
cmp eax, 2
jne 0x495166
push dword [ebp - 0x18]
call fcn.00493ec8
push 0x581cb7
push 0x581bef
call fcn.0054e450
add esp, 8
test eax, eax
jne 0x494c44
mov byte [0x581cb7], 0
push 0x581d1b
push 0x581c53
call fcn.0054e450
add esp, 8
test eax, eax
jne 0x494c61
mov byte [0x581d1b], 0
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x6bc], 1
jne 0x494de8
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x30], 0x581bef
mov eax, dword [ebp - 0x30]
cmp byte [eax], 0
je 0x494cf2
xor edx, edx
mov dword [ebp - 0xc], edx
xor ebx, ebx
mov eax, dword [ebp - 0x1c]
add eax, 0x67c
push eax
push 0
imul edx, esi, 0x64
add edx, 0x581bef
push edx
call fcn.0048e140
mov edi, eax
test edi, edi
je 0x494cc6
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax + 0x674]
test ebx, ebx
je 0x494cc6
cmp edi, ebx
je 0x494cc6
mov ebx, dword [ebx + 0x40]
inc dword [ebp - 0xc]
test ebx, ebx
jne 0x494cb8
test ebx, ebx
je 0x494cf2
mov eax, dword [ebx]
mov esi, 0x581808
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]
jmp 0x494cfc
inc esi
add dword [ebp - 0x30], 0x64
cmp esi, 4
jl 0x494c7c
test ebx, ebx
je 0x494de8
inc dword [0x56676c]
mov eax, dword [ebp + 8]
mov dword [0x566768], eax
cmp dword [ebp + 0x10], 1
jne 0x494d8f
cmp byte [0x57e784], 0
je 0x494dd7
mov esi, 0x579f7a
mov edi, 0x57e784
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 esi, 0x57a361
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 dword [ebp - 0x18]
push 0
push 0
push 1
push 0x57a361
push 0x579f7a
push dword [ebp + 8]
call fcn.004b07e0
jmp 0x494dd7
cmp dword [ebp + 0x10], 2
jne 0x494dbd
push 1
push 1
push dword [ebp - 0xc]
push 0x8098
push dword [ebp + 8]
call fcn.0042d704
call fcn.004cd2e7
push dword [ebp + 0xc]
push 3
push dword [ebp + 8]
call fcn.004cf498
jmp 0x494dd7
cmp dword [ebp + 0x10], 3
jne 0x494dd7
push 1
push 1
push dword [ebp - 0xc]
push 0x8098
push dword [ebp + 8]
call fcn.0042d704
xor eax, eax
mov dword [0x56677c], eax
mov eax, 1
jmp 0x495178
mov edx, dword [ebp - 0x18]
cmp dword [edx + 0x1c74], 0
je 0x494f88
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x30], 0x581bef
mov eax, dword [ebp - 0x30]
cmp byte [eax], 0
je 0x494e65
push dword [ebp - 0x18]
push 1
imul edx, esi, 0x64
add edx, 0x581bef
push edx
call fcn.004d70fb
mov ebx, eax
test ebx, ebx
je 0x494e63
mov esi, 0x581808
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]
push 0x21
push 0x581808
call fcn.0054e1ec
add esp, 8
mov esi, eax
test esi, esi
je 0x494e6f
mov byte [esi], 0
jmp 0x494e6f
xor ebx, ebx
inc esi
add dword [ebp - 0x30], 0x64
cmp esi, 4
jl 0x494e03
test ebx, ebx
je 0x494f88
inc dword [0x56676c]
mov eax, dword [ebp + 8]
mov dword [0x566768], eax
cmp dword [ebp + 0x10], 1
jne 0x494f5d
cmp byte [0x57e888], 0
je 0x494f77
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x6bc], 2
jne 0x494edd
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 0x6c0], 2
jne 0x494edd
mov esi, 0x579f7a
mov edi, 0x57e98c
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]
jmp 0x494f04
mov esi, 0x579f7a
mov edi, 0x57e888
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 esi, 0x57a361
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]
push 0x21
push 0x57a361
call fcn.0054e1ec
add esp, 8
mov esi, eax
test esi, esi
je 0x494f40
mov byte [esi], 0
push dword [ebp - 0x18]
push 0
push 0
push 1
push 0x57a361
push 0x579f7a
push dword [ebp + 8]
call fcn.004b07e0
jmp 0x494f77
cmp dword [ebp + 0x10], 2
jne 0x494f77
push 2
call fcn.004cd766
push dword [ebp + 0xc]
push 7
push dword [ebp + 8]
call fcn.004cf498
xor eax, eax
mov dword [0x56677c], eax
mov eax, 1
jmp 0x495178
mov edx, dword [ebp - 0x18]
cmp dword [edx + 0x1bfc], 0
je 0x495166
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x30], 0x581bef
mov eax, dword [ebp - 0x30]
cmp byte [eax], 0
je 0x495005
mov edx, dword [ebp - 0x18]
mov ebx, dword [edx + 0x1bfc]
test ebx, ebx
je 0x495001
imul eax, esi, 0x64
add eax, 0x581bef
push eax
push dword [ebx]
call fcn.0054e450
add esp, 8
test eax, eax
jne 0x494ffa
mov edx, dword [ebx]
push esi
mov esi, 0x581808
mov edi, edx
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 0x495001
mov ebx, dword [ebx + 0x40]
test ebx, ebx
jne 0x494fb8
test ebx, ebx
jne 0x49500f
inc esi
add dword [ebp - 0x30], 0x64
cmp esi, 4
jl 0x494fa3
test ebx, ebx
je 0x495166
inc dword [0x56676c]
mov eax, dword [ebp + 8]
mov dword [0x566768], eax
cmp dword [ebp + 0x10], 1
jne 0x4950e7
cmp byte [0x57e57c], 0
je 0x4950ff
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x6bc], 2
jne 0x49507d
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 0x6c0], 2
jne 0x49507d
mov esi, 0x579f7a
mov edi, 0x57e98c
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]
jmp 0x4950a4
mov esi, 0x579f7a
mov edi, 0x57e57c
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 esi, 0x57a361
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 dword [ebp - 0x18]
push 0
push 0
push 1
push 0x57a361
push 0x579f7a
push dword [ebp + 8]
call fcn.004b07e0
jmp 0x4950ff
cmp dword [ebp + 0x10], 2
jne 0x4950ff
call fcn.004cd26d
push dword [ebp + 0xc]
push 2
push dword [ebp + 8]
call fcn.004cf498
xor eax, eax
mov dword [0x56677c], eax
mov eax, 1
jmp 0x495178
mov ebx, dword [ebx + 0x40]
test ebx, ebx
je 0x495166
add ecx, esi
cmp edi, dword [ebx + 8]
je 0x495154
mov edi, dword [ebx + 8]
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x70c], 3
je 0x49513f
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x70c], 2
jne 0x495154
cmp dword [0x56c29c], 2
jne 0x495154
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x99c]
push ecx
mov ecx, 3
cdq
idiv ecx
pop ecx
add ecx, eax
mov eax, dword [ebp - 0x34]
sub eax, esi
dec eax
cmp ecx, eax
jg 0x495166
test ebx, ebx
jne 0x494432
xor edx, edx
mov dword [0x56676c], edx
xor ecx, ecx
mov dword [0x56677c], ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc