Function at 0x493fb0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x13ec
call fcn.00565660
mov eax, dword [0x597d20]
test eax, eax
push ebx
push esi
mov ebx, edx
mov esi, ecx
push edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], esi
jne 0x495026
mov eax, dword [0x589a54]
test eax, eax
mov edi, 1
mov dword [0x597d20], edi
jne 0x494000
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x49501c
push 0
lea edx, [esp + 0x3c]
mov ecx, esi
mov dword [0x597b84], 0
call fcn.00538310
mov esi, eax
test esi, esi
mov dword [esp + 0x1c], esi
je 0x49501c
mov eax, dword [esi + 0x85c]
test eax, eax
je 0x49501c
mov eax, dword [esi + 0x6c8]
test eax, eax
je 0x49501c
mov ecx, dword [esi + 0xbb4]
mov dword [esp + 0x18], ecx
call fcn.004dbea0
test eax, eax
je 0x49501c
mov eax, dword [esi + 0x750]
cmp eax, edi
mov ecx, dword [esi + 0x9e4]
mov dword [esp + 0x20], ecx
je 0x494079
cmp eax, 2
jne 0x494081
cmp dword [0x59b4dc], edi
jne 0x494081
lea eax, [ecx + ecx - 1]
mov dword [esp + 0x20], eax
movzx ecx, bx
push edi
mov dword [esp + 0x34], ecx
shr ebx, 0x10
mov dword [esp + 0x38], ebx
mov eax, dword [esi + 0x85c]
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 0x49501c
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
cmp eax, ecx
jge 0x49501c
xor edi, edi
cmp eax, edi
jl 0x4940fb
mov eax, dword [esi + 0x6f8]
mov edx, dword [esi + 0x6c8]
sub eax, dword [esi + 0x6fc]
mov ebx, dword [edx + 0x44]
cmp eax, edi
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], ebx
jle 0x4940f7
cmp ebx, edx
je 0x4940f3
mov ebx, dword [ebx + 0x44]
dec eax
cmp eax, edi
jg 0x4940e7
mov dword [esp + 0x14], ebx
cmp ebx, edi
jne 0x49410c
mov dword [0x597d20], edi
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov edi, dword [ebx + 8]
sub ecx, edx
dec ecx
cmp ebx, eax
mov dword [esp + 0xc], ecx
je 0x4941bf
mov ebx, dword [ebx + 0x44]
mov eax, dword [ebx + 8]
sub ecx, edx
cmp edi, eax
je 0x49417b
mov edi, eax
mov eax, dword [esi + 0x750]
cmp eax, 3
je 0x49414d
cmp eax, 2
jne 0x494173
cmp dword [0x59b4dc], 2
jne 0x494173
mov edx, dword [esp + 0x1c]
mov esi, dword [edx + 0x9e4]
mov eax, 0x55555555
imul esi
sub edx, esi
mov esi, dword [esp + 0x1c]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
add ecx, edx
mov edx, dword [esp + 0x20]
mov eax, edx
neg eax
cmp ecx, eax
jl 0x494183
cmp ebx, dword [esp + 0x24]
jne 0x494126
jmp 0x4941bb
mov eax, dword [esi + 0x750]
add ecx, edx
cmp eax, 3
mov dword [esp + 0x14], ebx
je 0x4941a2
cmp eax, 2
jne 0x4941b8
cmp dword [0x59b4dc], 2
jne 0x4941b8
mov edx, dword [esi + 0x9e4]
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 0x49501c
mov esi, dword [ebx + 8]
mov edi, dword [esp + 0x20]
mov edi, edi
mov eax, dword [esp + 0x34]
cmp eax, ecx
jl 0x4941df
lea edx, [ecx + edi]
cmp eax, edx
jl 0x49423e
mov ebx, dword [ebx + 0x40]
test ebx, ebx
mov dword [esp + 0x14], ebx
je 0x495007
mov eax, ebx
mov eax, dword [eax + 8]
add ecx, edi
cmp esi, eax
je 0x49422e
mov edx, dword [esp + 0x1c]
mov esi, eax
mov eax, dword [edx + 0x750]
cmp eax, 3
je 0x494218
cmp eax, 2
jne 0x49422e
cmp dword [0x59b4dc], 2
jne 0x49422e
mov edx, dword [edx + 0x9e4]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
add ecx, edx
cmp ecx, dword [esp + 0xc]
jg 0x495007
mov ebx, dword [esp + 0x14]
jmp 0x4941d0
mov ecx, dword [esp + 0x30]
mov edx, dword [ebx]
push ecx
mov ecx, dword [esp + 0x20]
call fcn.00493a50
test eax, eax
mov dword [esp + 0xc], eax
jl 0x495007
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov ecx, dword [esp + 0xc]
mov al, byte [ecx + eax]
cmp al, 0x20
je 0x495007
cmp al, 9
je 0x495007
mov eax, edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x6c8]
cmp eax, ecx
mov esi, eax
mov dword [esp + 0x10], esi
je 0x4942a5
lea ecx, [ecx]
mov eax, dword [esi + 0x44]
mov edx, dword [eax + 8]
cmp edx, dword [esi + 8]
jne 0x4942a5
cmp eax, ecx
mov dword [esp + 0x10], eax
mov esi, eax
jne 0x494290
test esi, esi
je 0x495007
mov edx, 0x3e7
lea ecx, [esp + 0x818]
call fcn.0041e210
mov ebx, esi
jmp 0x4942d0
mov esi, dword [esp + 0x10]
jmp 0x4942d0
mov eax, dword [ebx + 8]
cmp eax, dword [esi + 8]
jne 0x494377
mov eax, dword [ebx + 0x10]
test eax, eax
mov ecx, dword [ebx]
jle 0x494308
cmp byte [ecx], 0x20
jne 0x4942fe
lea ebx, [ebx]
test eax, eax
jle 0x4942fe
mov dl, byte [ecx + 1]
inc ecx
dec eax
cmp dl, 0x20
je 0x4942f0
cmp byte [ecx], 0
jne 0x494308
mov ecx, 0x575258
lea eax, [esp + 0x818]
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x494312
sub eax, esi
mov esi, eax
mov eax, ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x494322
sub eax, edi
add eax, esi
cmp eax, 0x3b5
ja 0x494373
mov eax, ecx
mov edx, ecx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x494338
lea edi, [esp + 0x818]
sub eax, edx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x494350
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 0x4942c2
mov esi, dword [esp + 0x10]
mov ecx, dword [esi]
mov edx, 0x597798
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x494380
cmp esi, dword [esp + 0x14]
jne 0x49439a
mov dword [esp + 0x20], 0
jmp 0x4943c3
mov eax, 0x597798
mov dword [esp + 0x20], 1
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4943b0
mov ecx, dword [esp + 0xc]
sub eax, edx
add ecx, eax
mov dword [esp + 0xc], ecx
mov eax, dword [esi + 0x40]
test eax, eax
mov dword [esp + 0x10], eax
je 0x494596
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 8]
mov eax, dword [esp + 0x14]
cmp edx, dword [eax + 8]
jne 0x494596
mov edi, dword [esp + 0x10]
cmp edi, eax
jne 0x4943f6
mov dword [esp + 0x20], 0
mov eax, dword [edi + 0x10]
test eax, eax
jle 0x494505
mov edx, dword [esp + 0x10]
mov ebx, dword [edx]
mov ecx, eax
mov dword [esp + 0x24], ecx
lea ecx, [ecx]
mov al, byte [ebx]
cmp al, 0x20
je 0x49441a
cmp al, 9
jne 0x494422
test ecx, ecx
jle 0x494422
inc ebx
dec ecx
jmp 0x494410
cmp byte [ebx], 0
mov dword [esp + 0x24], ecx
je 0x4944c4
mov eax, 0x597798
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x494437
sub eax, edx
mov edx, eax
mov eax, ebx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x494447
sub eax, esi
add eax, edx
cmp eax, 0x3b5
ja 0x494596
mov eax, ebx
mov edx, ebx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x494461
mov edi, 0x597798
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x494470
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x20]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x4944a8
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x494495
mov ecx, dword [esp + 0xc]
sub eax, edx
add ecx, eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
jne 0x494583
mov eax, dword [esp + 0x24]
mov edx, dword [ecx + 0x10]
jmp 0x494577
mov edi, 0x597798
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4944d0
mov eax, dword [esp + 0x20]
test eax, eax
mov dx, word [0x575258]
mov word [edi], dx
je 0x4944ee
inc dword [esp + 0xc]
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x10], eax
jne 0x494583
dec dword [esp + 0xc]
jmp 0x494583
mov eax, 0x597798
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x494510
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 0x494522
sub eax, edi
add eax, esi
cmp eax, 0x3b5
ja 0x494596
mov eax, edx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x494536
mov edi, 0x597798
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x494545
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x20]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x494583
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x494570
mov ecx, dword [esp + 0xc]
sub eax, edx
add ecx, eax
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x40]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4943d2
mov esi, dword [esp + 0xc]
test esi, esi
jl 0x495007
mov eax, 0x597798
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4945b0
sub eax, edx
cmp esi, eax
jge 0x495007
lea eax, [esi + 0x597798]
cmp eax, 0x597798
jbe 0x4945e4
mov edi, edi
mov cl, byte [eax]
cmp cl, 0x20
je 0x4945fe
cmp cl, 9
je 0x4945e4
dec eax
cmp eax, 0x597798
ja 0x4945d0
mov cl, byte [eax]
cmp cl, 0x20
je 0x4945fe
cmp cl, 9
je 0x4945fe
mov ecx, eax
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4945f5
jmp 0x494617
mov cl, byte [eax + 1]
inc eax
test cl, cl
je 0x495007
mov ecx, eax
lea esi, [ecx + 1]
nop
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x494610
sub ecx, esi
inc ecx
push ecx
push eax
push 0x597798
call fcn.005641d0
mov cl, byte [0x597798]
add esp, 0xc
test cl, cl
mov eax, 0x597798
je 0x494651
mov cl, byte [eax]
cmp cl, 0x20
je 0x49464e
cmp cl, 9
je 0x49464e
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x494638
jmp 0x494651
mov byte [eax], 0
mov edx, 0xf
mov ecx, 0x597798
call fcn.00518d60
mov al, byte [0x597798]
test al, al
je 0x495007
mov eax, dword [0x59ca60]
test eax, eax
je 0x49473d
xor eax, eax
mov ecx, 0x1fe
lea edi, [esp + 0xc00]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x818]
xor ebx, ebx
push eax
mov edx, 0x3e7
lea ecx, [esp + 0xc2c]
mov dword [esp + 0x28], ebx
call fcn.0041e120
push 0x597798
mov edx, 0x3e7
lea ecx, [esp + 0x1013]
call fcn.0041e120
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0xc00]
push ecx
mov ecx, dword [esi + 0xbb4]
lea edx, [esp + 0x28]
push edx
push 1
push 0x1d
push str.HOTLINK
push ebx
mov edx, esi
call fcn.00506dd0
test eax, eax
je 0x49473d
cmp dword [ebp + 8], 1
jne 0x494714
lea eax, [esp + 0xc00]
push eax
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esi + 0xbb4]
push ebx
push 0x1d
push str.HOTLINK
push ebx
mov edx, esi
call fcn.00506dd0
mov eax, dword [0x597b84]
mov edx, dword [esp + 0x28]
inc eax
mov dword [0x597b84], eax
mov dword [0x597b80], edx
mov dword [0x597d20], ebx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov al, byte [0x597798]
test al, al
mov edi, dword [esp + 0x18]
mov esi, 0x597798
je 0x494895
mov edx, edi
mov ecx, esi
call fcn.004f8280
test al, al
je 0x49476a
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x494753
jmp 0x49477b
mov edx, edi
mov ecx, esi
call fcn.004f8240
test al, al
je 0x494895
test esi, esi
je 0x494895
cmp byte [esi], 0
je 0x494895
push 0x2c
push esi
call fcn.00563730
add esp, 8
test eax, eax
je 0x49479e
mov byte [eax], 0
cmp byte [esi], 0
je 0x494895
mov al, byte [esi + 1]
test al, al
je 0x494895
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4947b7
sub eax, edx
test eax, eax
jle case.0x4947d8.35
movzx ecx, byte [esi + eax - 1]
add ecx, 0xffffffde
cmp ecx, 0x5b
ja case.0x4947d8.35
movzx ecx, byte [ecx + 0x49503c]
jmp dword [ecx*4 + 0x495034]
mov byte [esi + eax - 1], 0
cmp byte [esi], 0
je 0x495007
mov edx, dword [0x597b84]
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x28]
inc edx
cmp eax, 1
mov dword [0x597b84], edx
mov dword [0x597b80], edi
jne 0x494855
call fcn.0041c970
push esi
lea edx, [esp + 0x4c]
push str._join__s
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
add esp, 0xc
push eax
push 0
push 0
push 0
push 0
lea edx, [esp + 0x5c]
call fcn.0043bba0
mov dword [0x597d20], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 2
jne 0x494fef
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x494863
sub eax, edx
inc eax
push eax
push esi
push 0x597798
call fcn.005641d0
add esp, 0xc
mov ecx, 1
call fcn.004d1ab0
mov eax, dword [esp + 0x2c]
push eax
mov edx, 0x14
jmp 0x494fe8
mov eax, 0x597798
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4948a0
sub eax, edx
cmp eax, 2
jb 0x494b32
push 0x2e
push 0x59779a
call fcn.00563730
add esp, 8
test eax, eax
je 0x494b32
movzx eax, byte [0x597798]
add eax, 0xffffffde
cmp eax, 0x59
ja case.0x4948df.35
movzx ecx, byte [eax + 0x4950a0]
jmp dword [ecx*4 + 0x495098]
mov eax, 0x597799
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4948f0
sub eax, edx
inc eax
push eax
push 0x597799
push 0x597798
call fcn.005641d0
add esp, 0xc
mov eax, 0x597798
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x494915
sub eax, edx
mov esi, eax
test esi, esi
jle case.0x49493a.35
movzx eax, byte [esi + 0x597797]
add eax, 0xffffffde
cmp eax, 0x5b
ja case.0x49493a.35
movzx edx, byte [eax + 0x495108]
jmp dword [edx*4 + 0x4950fc]
push 0x578b04
push 0x597798
call fcn.00563db0
add esp, 8
test eax, eax
jne case.0x49493a.35
mov byte [esi + 0x597797], 0
mov al, byte [0x597798]
test al, al
je 0x495007
push 0x3a
push 0x597798
mov dword [0x597b84], 0
call fcn.00563730
add esp, 8
test eax, eax
je 0x4949f2
push 7
push 0x578af8
push 0x597798
call fcn.00572b89
add esp, 0xc
test eax, eax
jne 0x4949aa
mov esi, 0xb
jmp 0x494a72
push 8
push 0x578aec
push 0x597798
call fcn.00572b89
add esp, 0xc
test eax, eax
jne 0x4949cc
mov esi, 0xc
jmp 0x494a72
push 6
push 0x578ae4
push 0x597798
call fcn.00572b89
add esp, 0xc
test eax, eax
jne 0x495007
mov esi, 0xa
jmp 0x494a72
push 4
push 0x578adc
push 0x597798
call fcn.00572b89
add esp, 0xc
test eax, eax
je 0x494a56
push 4
push 0x578ad4
push 0x597798
call fcn.00572b89
add esp, 0xc
test eax, eax
je 0x494a56
push 0x40
push 0x597798
call fcn.00563730
add esp, 8
test eax, eax
je 0x495007
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x495007
inc dword [0x597b84]
mov esi, 6
jmp 0x494a72
push 0x2e
push 0x59779c
mov esi, 8
call fcn.00563730
add esp, 8
test eax, eax
je 0x495007
mov eax, 0x597798
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x494a80
sub eax, edx
cmp eax, esi
jl 0x495007
mov ecx, dword [0x597b84]
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x28]
inc ecx
cmp eax, 1
mov dword [0x597b84], ecx
mov dword [0x597b80], esi
jne 0x494b0c
cmp ecx, 2
mov ecx, 0x597798
jne 0x494adb
mov edx, dword [esp + 0x18]
call fcn.00501490
mov dword [0x597d20], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call fcn.0046afd0
test eax, eax
je 0x494f46
xor edx, edx
mov ecx, 0x597798
call fcn.0052e740
mov dword [0x597d20], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 2
jne 0x494f46
cmp ecx, 1
jne 0x494f46
call fcn.004d2fc0
mov eax, dword [esp + 0x2c]
push eax
mov edx, 0x1b
jmp 0x494f3f
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x700]
test eax, eax
je 0x494b52
cmp eax, 1
je 0x494b52
cmp eax, 2
jne 0x495007
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.00493d10
push 0x597c50
push 0x597b88
call fcn.00572b46
add esp, 8
test eax, eax
jne 0x494b74
mov byte [0x597c50], al
push 0x597cb4
push 0x597bec
call fcn.00572b46
add esp, 8
test eax, eax
jne 0x494b8f
mov byte [0x597cb4], al
mov edx, dword [esp + 0x1c]
cmp dword [edx + 0x700], 1
jne 0x494d1a
mov ebx, dword [esp + 0xc]
xor esi, esi
mov edi, 0x597b88
jmp 0x494bb0
cmp byte [edi], 0
je 0x494bf2
mov eax, dword [esp + 0x1c]
add eax, 0x6c0
push eax
xor edx, edx
mov ecx, edi
xor ebx, ebx
xor esi, esi
call fcn.0048cfc0
test eax, eax
je 0x494bf2
mov ecx, dword [esp + 0x1c]
mov esi, dword [ecx + 0x6b4]
test esi, esi
je 0x494bf2
mov edi, edi
cmp esi, eax
je 0x494bee
mov esi, dword [esi + 0x40]
inc ebx
test esi, esi
jne 0x494be0
jmp 0x494bf2
test esi, esi
jne 0x494bff
add edi, 0x64
cmp edi, 0x597d18
jl 0x494bb0
jmp 0x494c10
mov ecx, dword [esi]
mov edx, 0x597798
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x494c06
test esi, esi
je 0x494d1a
mov edx, dword [0x597b84]
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x28]
inc edx
cmp eax, 1
mov dword [0x597b84], edx
mov dword [0x597b80], edi
jne 0x494ca8
mov al, byte [0x5929bc]
test al, al
je 0x494d02
call fcn.0041c970
xor eax, eax
jmp 0x494c50
mov cl, byte [eax + 0x5929bc]
mov byte [esp + eax + 0x48], cl
inc eax
test cl, cl
jne 0x494c50
mov esi, dword [esi]
lea ecx, [esp + 0x430]
mov al, byte [esi]
inc esi
mov byte [ecx], al
inc ecx
test al, al
jne 0x494c68
mov edx, dword [esp + 0x18]
push edx
push 0
push 0
push 1
lea eax, [esp + 0x440]
push eax
lea edx, [esp + 0x5c]
mov ecx, edi
call fcn.0043bba0
mov dword [0x597d20], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 2
jne 0x494cec
push 1
push 1
push ebx
mov edx, 0x8098
mov ecx, edi
call fcn.0041d650
call fcn.004d1c40
mov ecx, dword [esp + 0x2c]
push ecx
mov edx, 3
mov ecx, edi
call fcn.004ce2d0
mov dword [0x597d20], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 3
jne 0x494d02
push 1
push 1
push ebx
mov edx, 0x8098
mov ecx, edi
call fcn.0041d650
mov dword [0x597d20], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x201c]
test eax, eax
je 0x494d5b
mov esi, 0x597b88
lea ecx, [ecx]
cmp byte [esi], 0
je 0x494d50
mov eax, dword [esp + 0x18]
push eax
mov edx, 1
mov ecx, esi
call fcn.004e0240
mov edi, eax
test edi, edi
jne 0x494e25
add esi, 0x64
cmp esi, 0x597d18
jl 0x494d30
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x1fa0]
test eax, eax
je 0x495007
xor esi, esi
mov edi, 0x597b88
mov ebx, edx
cmp byte [edi], 0
je 0x494da0
mov esi, dword [ebx + 0x1fa0]
test esi, esi
je 0x494da0
mov eax, dword [esi]
push edi
push eax
call fcn.00572b46
add esp, 8
test eax, eax
je 0x494f5e
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x494d85
add edi, 0x64
cmp edi, 0x597d18
jl 0x494d76
test esi, esi
je 0x495007
mov ebx, dword [esp + 0x18]
mov edx, dword [0x597b84]
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x28]
inc edx
cmp eax, 1
mov dword [0x597b84], edx
mov dword [0x597b80], edi
jne 0x494fd4
mov al, byte [0x5927b4]
test al, al
je 0x494fef
call fcn.0041c970
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x700]
mov ecx, 2
cmp edx, ecx
jne 0x494f74
cmp dword [eax + 0x704], ecx
jne 0x494f74
xor eax, eax
mov cl, byte [eax + 0x592bc4]
mov byte [esp + eax + 0x48], cl
inc eax
test cl, cl
jne 0x494e11
jmp 0x494f8f
mov edx, 0x597798
mov eax, edi
sub edx, edi
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x494e30
push 0x21
push 0x597798
call fcn.00563730
add esp, 8
test eax, eax
je 0x494e50
mov byte [eax], 0
mov edx, dword [0x597b84]
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x28]
inc edx
cmp eax, 1
mov dword [0x597b84], edx
mov dword [0x597b80], esi
jne 0x494f29
mov al, byte [0x592ac0]
test al, al
je 0x494f46
call fcn.0041c970
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x700]
mov ecx, 2
cmp edx, ecx
jne 0x494eb3
cmp dword [eax + 0x704], ecx
jne 0x494eb3
xor eax, eax
mov cl, byte [eax + 0x592bc4]
mov byte [esp + eax + 0x48], cl
inc eax
test cl, cl
jne 0x494ea2
jmp 0x494ec4
xor eax, eax
mov cl, byte [eax + 0x592ac0]
mov byte [esp + eax + 0x48], cl
inc eax
test cl, cl
jne 0x494eb5
lea edx, [esp + 0x430]
mov eax, edi
sub edx, edi
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x494ed0
lea ecx, [esp + 0x430]
push 0x21
push ecx
call fcn.00563730
add esp, 8
test eax, eax
je 0x494ef3
mov byte [eax], 0
mov edx, dword [esp + 0x18]
push edx
push 0
push 0
push 1
lea eax, [esp + 0x440]
push eax
lea edx, [esp + 0x5c]
mov ecx, esi
call fcn.0043bba0
mov dword [0x597d20], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 2
jne 0x494f46
mov ecx, eax
call fcn.004d1df0
mov ecx, dword [esp + 0x2c]
push ecx
mov edx, 7
mov ecx, esi
call fcn.004ce2d0
mov dword [0x597d20], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esi]
mov edx, 0x597798
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x494f65
jmp 0x494db7
xor eax, eax
jmp 0x494f80
mov cl, byte [eax + 0x5927b4]
mov byte [esp + eax + 0x48], cl
inc eax
test cl, cl
jne 0x494f80
mov esi, dword [esi]
lea ecx, [esp + 0x430]
mov al, byte [esi]
inc esi
mov byte [ecx], al
inc ecx
test al, al
jne 0x494f98
push ebx
push 0
push 0
push 1
lea ecx, [esp + 0x440]
push ecx
lea edx, [esp + 0x5c]
mov ecx, edi
call fcn.0043bba0
mov dword [0x597d20], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 2
jne 0x494fef
call fcn.004d1bb0
mov edx, dword [esp + 0x2c]
push edx
mov edx, 2
mov ecx, edi
call fcn.004ce2d0
mov dword [0x597d20], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor eax, eax
mov dword [0x597b84], eax
mov dword [0x597d20], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [0x597d20], 0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 4