Function at 0x419239
Capabilities:
Log keystrokes via polling
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
xor eax, eax
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
cmp edi, dword [0x5dd8b0]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x48], eax
jne 0x419289
cmp edi, eax
jne 0x4192b0
cmp edi, eax
mov dword [0x5dd8a0], eax
mov dword [0x5dd8a4], eax
mov dword [0x5dd8a8], eax
mov dword [0x5dd8ac], eax
mov dword [0x5dd8b0], edi
mov dword [0x5dd8b8], eax
je 0x41a4ae
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x14]
push eax
xor ebx, ebx
xor esi, esi
call fcn.004172b7
mov esi, edi
call fcn.0041749b
mov byte [ebp - 0x4c], al
call fcn.0041736b
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x58]
push eax
lea edi, [ebp - 0x60]
lea ebx, [ebp - 0x20]
call fcn.0041b337
add esp, 0x20
call fcn.00419132
mov dword [ebp - 0x78], eax
call fcn.00418a64
xor ebx, ebx
test al, 0x4e
mov dword [ebp - 0x5c], ebx
je 0x419316
mov dword [ebp - 0x5c], 1
movzx eax, al
shr eax, 5
and eax, 1
mov dword [ebp - 0x64], eax
call fcn.00418a96
push ebx
mov dword [ebp - 0x6c], eax
call fcn.00418ab2
cmp dword [0x5dd8b8], ebx
pop ecx
je 0x41934f
mov eax, dword [ebp + 8]
call fcn.004c3ab2
mov dword [0x5dd8b8], ebx
push 0x77
pop eax
jmp 0x41a4b0
cmp dword [0x5dd8b4], ebx
je 0x419387
cmp dword [0x5d47f4], ebx
jl 0x419387
cmp dword [0x5d47f8], ebx
jle 0x419387
mov edi, esi
call fcn.0041ae06
cmp dword [0x5d47f4], eax
jne 0x419387
mov eax, dword [0x5d47f8]
cmp eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], 1
je 0x41938a
mov dword [ebp - 0x44], ebx
cmp dword [ebp + 8], ebx
je 0x41a4ae
cmp dword [ebp - 0x14], ebx
je 0x41a4ae
cmp dword [ebp - 0x28], ebx
je 0x41a4ae
cmp dword [ebp - 0x44], ebx
mov edi, 0x5dd800
jne 0x4193da
or dword [0x5d47f4], 0xffffffff
or dword [0x5d47f8], 0xffffffff
mov eax, edi
mov dword [0x5dd8b4], ebx
call fcn.004c3b56
test eax, eax
jne 0x4193da
push 0x50
push ebx
push edi
call fcn.005117f0
add esp, 0xc
lea ebx, [ebp - 0x10]
lea esi, [ebp - 0xc]
call fcn.004128bf
mov eax, dword [ebp - 0x28]
inc eax
push eax
xor esi, esi
push esi
push dword [ebp + 8]
call fcn.005117f0
add esp, 0xc
cmp dword [ebp - 0x44], esi
mov dword [ebp - 4], esi
mov dword [ebp - 8], esi
je 0x419495
xor ecx, ecx
cmp byte [0x5dd800], cl
je 0x41943b
mov esi, dword [ebp + 8]
sub esi, edi
cmp ecx, dword [0x5d47f8]
jge 0x41943b
cmp ecx, dword [ebp - 0x28]
jge 0x41943b
inc dword [ebp - 4]
lea eax, [ecx + 0x5dd800]
mov dl, byte [eax]
inc ecx
mov byte [esi + eax], dl
cmp byte [ecx + 0x5dd800], 0
jne 0x419416
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov ebx, ecx
sub ebx, eax
mov dword [ebp - 8], ecx
jns 0x41944c
xor ebx, ebx
lea esi, [ebx + eax]
cmp esi, ecx
jle 0x419455
mov esi, ecx
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004127f9
mov eax, dword [ebp + 8]
push 0
sub esi, ebx
add ebx, eax
push esi
push ebx
call fcn.004104e5
and dword [0x5dd8b4], 0
or dword [0x5d47f4], 0xffffffff
or dword [0x5d47f8], 0xffffffff
add esp, 0x14
push 0x50
push 0
push edi
call fcn.005117f0
add esp, 0xc
xor edi, edi
mov dword [ebp - 0x68], edi
call fcn.004f16be
mov dword [ebp - 0x74], eax
call fcn.0040fcf6
cmp eax, edi
mov dword [ebp - 0x44], eax
je 0x41a17e
call fcn.004f16be
mov dword [ebp - 0x74], eax
call fcn.0040fd9a
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x18]
push 0x1b
pop esi
cmp ebx, esi
je 0x41a345
cmp ebx, 0xd
je 0x41a07e
push 0xa
pop edi
cmp ebx, edi
je 0x41a07e
cmp ebx, 8
je 0x4195ee
cmp ebx, 0xe0
je 0x4196f1
xor esi, esi
cmp ebx, esi
jne 0x419e13
call fcn.0040fd9a
mov ebx, eax
cmp ebx, 0x4b
jg 0x41958b
je 0x419582
cmp ebx, 0x44
jg 0x419558
cmp ebx, 0x43
jge 0x419dab
cmp ebx, 0x3b
jl 0x41a17e
cmp ebx, 0x40
jle 0x41953f
cmp ebx, 0x41
je 0x419cb3
cmp ebx, 0x42
jne 0x41a17e
mov esi, dword [ebp + 0xc]
call fcn.004191f3
cmp eax, 1
jne 0x419dab
mov dword [ebp - 0x18], edi
jmp 0x4194c2
sub ebx, 0x47
je 0x419579
dec ebx
je 0x419570
dec ebx
jne 0x41a17e
mov dword [ebp - 0x18], 0x39
jmp 0x4195e4
mov dword [ebp - 0x18], 0x38
jmp 0x4195e4
mov dword [ebp - 0x18], 0x37
jmp 0x4195e4
mov dword [ebp - 0x18], 0x34
jmp 0x4195e4
sub ebx, 0x4c
je 0x4195dd
dec ebx
je 0x4195d4
dec ebx
dec ebx
je 0x4195cb
dec ebx
je 0x4195c2
dec ebx
je 0x4195b9
dec ebx
je 0x4195b0
dec ebx
jne 0x41a17e
mov dword [ebp - 0x18], 0x2e
jmp 0x4195e4
mov dword [ebp - 0x18], 0x30
jmp 0x4195e4
mov dword [ebp - 0x18], 0x33
jmp 0x4195e4
mov dword [ebp - 0x18], 0x32
jmp 0x4195e4
mov dword [ebp - 0x18], 0x31
jmp 0x4195e4
mov dword [ebp - 0x18], 0x36
jmp 0x4195e4
mov dword [ebp - 0x18], 0x35
call fcn.0043442d
jmp 0x4194c2
cmp dword [ebp - 8], 0
jle 0x41a17e
mov esi, dword [ebp + 0xc]
call fcn.00418925
test eax, eax
je 0x41962a
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, esi
call fcn.0041874b
pop ecx
pop ecx
mov eax, esi
call fcn.00417e93
call fcn.00418925
test eax, eax
jne 0x41a17e
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.0041a4b5
mov ebx, dword [ebp + 8]
add esp, 0x10
dec dword [ebp - 8]
mov eax, dword [ebp - 8]
call fcn.004c461f
dec dword [ebp - 4]
mov eax, dword [ebp - 4]
mov byte [eax + ebx], 0
xor ebx, ebx
lea esi, [ebp - 0x44]
mov dword [ebp - 0x44], 0xffffff22
call fcn.004128bf
mov edi, dword [ebp - 0x44]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
sub eax, edi
add ecx, eax
mov eax, dword [ebp - 0x14]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0xc]
lea esi, [ecx + 1]
cmp edi, eax
jg 0x41969a
test esi, esi
jle 0x41969a
mov esi, ecx
jmp 0x41969b
dec edi
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
add ecx, eax
cmp edi, ecx
jne 0x4196ac
mov edi, 0xffffff22
test esi, esi
jge 0x4196b2
xor esi, esi
lea ebx, [esi + eax]
cmp ebx, dword [ebp - 4]
jle 0x4196bd
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004127f9
push dword [ebp - 0x4c]
mov eax, dword [ebp + 8]
sub ebx, esi
push ebx
add esi, eax
push esi
call fcn.004104e5
add esp, 0x14
cmp edi, 0xffffff22
je 0x41a17e
push dword [ebp - 0x10]
push edi
jmp 0x41a053
call fcn.0040fd9a
mov ebx, eax
cmp ebx, 0x86
jg 0x41a17e
cmp ebx, 0x85
jge 0x419c39
cmp ebx, 0x4d
jg 0x4199c9
je 0x4198d0
sub eax, 0x47
je 0x41982e
dec eax
je 0x4197f0
dec eax
je 0x4197d8
dec eax
dec eax
jne 0x41a17e
xor esi, esi
cmp dword [ebp - 4], esi
jne 0x419766
mov eax, dword [ebp + 0xc]
call fcn.004188c4
test eax, eax
je 0x419766
cmp dword [ebp - 0x2c], esi
jle 0x419766
dec dword [ebp - 0x2c]
push 0
push dword [ebp - 0x20]
push dword [ebp - 0x24]
jmp 0x41a174
cmp dword [ebp - 8], esi
jle 0x41a17e
push dword [ebp - 0x20]
mov dword [ebp - 0x44], esi
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.0041a4b5
add esp, 0x10
xor ebx, ebx
lea esi, [ebp - 0x44]
call fcn.004128bf
mov edi, dword [ebp - 0xc]
dec dword [ebp - 8]
cmp dword [ebp - 0x44], edi
jg 0x4197ca
mov ebx, dword [ebp - 8]
test ebx, ebx
jge 0x4197a3
xor ebx, ebx
mov eax, dword [ebp - 0x14]
lea esi, [ebx + eax]
cmp esi, dword [ebp - 4]
jle 0x4197b1
mov esi, dword [ebp - 4]
push dword [ebp - 0x10]
push edi
call fcn.004127f9
mov eax, dword [ebp + 8]
push 0
sub esi, ebx
push esi
add ebx, eax
push ebx
jmp 0x4196d4
push 0
push 0
call fcn.00434564
jmp 0x41a058
mov esi, dword [ebp + 0xc]
lea ebx, [ebp - 0x40]
xor edi, edi
call fcn.0041afaf
mov eax, dword [ebp - 0x40]
sub dword [ebp - 0x1c], eax
jmp 0x419759
mov esi, dword [ebp + 0xc]
xor edi, edi
inc edi
push edi
call fcn.00417577
test eax, eax
pop ecx
je 0x419826
mov eax, esi
call fcn.0041886e
test eax, eax
jne 0x419826
cmp dword [ebp - 4], eax
je 0x41a35f
push 0
push str.IllegalKey.wav
call fcn.004c0b87
jmp 0x41a058
dec dword [ebp - 0x1c]
jmp 0x419759
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.0041a4b5
xor edi, edi
add esp, 0x10
cmp dword [ebp - 4], edi
jg 0x4198c0
mov esi, dword [ebp + 0xc]
call fcn.00418925
test eax, eax
jne 0x419759
call fcn.0041739b
cmp dword [ebp - 0x28], eax
jl 0x419759
mov eax, dword [ebp + 8]
or ecx, 0xffffffff
call fcn.0041aff0
push dword [ebp + 8]
call fcn.005120b0
mov esi, dword [ebp - 0x14]
cmp esi, eax
pop ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], edi
jle 0x419889
mov esi, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004127f9
push edi
push esi
push dword [ebp + 8]
call fcn.004104e5
add esp, 0x14
cmp dword [ebp - 0xc], 0xffffff22
je 0x419759
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004127f9
pop ecx
pop ecx
jmp 0x419759
mov esi, dword [ebp - 0x14]
cmp esi, dword [ebp - 4]
mov dword [ebp - 8], edi
jle 0x419889
mov esi, dword [ebp - 4]
jmp 0x419889
mov edi, dword [ebp - 4]
test edi, edi
jne 0x4198eb
mov eax, dword [ebp + 0xc]
call fcn.004188c4
test eax, eax
je 0x4198eb
inc dword [ebp - 0x2c]
jmp 0x419759
cmp dword [ebp - 8], edi
jge 0x419955
push dword [ebp - 0x20]
and dword [ebp - 0x44], 0
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.0041a4b5
add esp, 0x10
xor ebx, ebx
lea esi, [ebp - 0x44]
call fcn.004128bf
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
inc dword [ebp - 8]
lea edx, [eax + ecx - 1]
cmp dword [ebp - 0x44], edx
jl 0x41994b
mov ebx, dword [ebp - 8]
sub ebx, eax
jns 0x41992c
xor ebx, ebx
lea esi, [ebx + eax]
cmp esi, edi
jle 0x419935
mov esi, edi
push dword [ebp - 0x10]
push ecx
call fcn.004127f9
mov eax, dword [ebp + 8]
push 0
sub esi, ebx
push esi
add ebx, eax
push ebx
jmp 0x4199bc
call fcn.004345ce
jmp 0x41a17e
test edi, edi
jg 0x41a17e
mov esi, dword [ebp + 0xc]
call fcn.00418925
test eax, eax
jne 0x41a17e
call fcn.0041739b
cmp dword [ebp - 0x28], eax
jl 0x41a17e
mov edi, dword [ebp + 8]
mov eax, edi
or ecx, 0xffffffff
call fcn.0041aff0
push edi
call fcn.005120b0
pop ecx
mov ecx, dword [ebp - 0x14]
mov esi, eax
sub esi, ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
jns 0x4199a0
xor esi, esi
lea ebx, [esi + ecx]
cmp ebx, eax
jle 0x4199a9
mov ebx, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004127f9
push 0
sub ebx, esi
push ebx
add esi, edi
push esi
call fcn.004104e5
add esp, 0x14
jmp 0x41a17e
mov eax, ebx
sub eax, 0x4f
je 0x419b88
dec eax
je 0x419b15
dec eax
je 0x419afd
dec eax
dec eax
jne 0x41a17e
xor ebx, ebx
cmp dword [ebp - 8], ebx
jl 0x419759
mov edi, dword [ebp - 4]
cmp edi, ebx
jle 0x419759
mov esi, dword [ebp + 0xc]
call fcn.00418925
test eax, eax
je 0x419a30
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, esi
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x2c], ebx
call fcn.0041874b
pop ecx
pop ecx
mov eax, esi
call fcn.00417e93
call fcn.00418925
test eax, eax
jne 0x419759
cmp dword [ebp - 8], edi
jge 0x419759
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x58]
push 2
call fcn.0041a4b5
mov eax, dword [ebp - 8]
mov ebx, dword [ebp + 8]
add esp, 0x10
call fcn.004c461f
dec edi
cmp dword [ebp - 8], edi
mov dword [ebp - 4], edi
mov byte [edi + ebx], 0
jl 0x419a7a
cmp dword [ebp - 8], 0
jle 0x419a7a
dec dword [ebp - 8]
mov edi, 0xffffff22
xor ebx, ebx
lea esi, [ebp - 0x18]
mov dword [ebp - 0x18], edi
call fcn.004128bf
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
add ecx, eax
mov eax, dword [ebp - 0x14]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0xc]
lea ebx, [ecx + 1]
cmp dword [ebp - 0x18], eax
jg 0x419ab2
test ebx, ebx
jle 0x419ab2
mov ebx, ecx
jmp 0x419ab5
dec dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
add ecx, eax
cmp dword [ebp - 0x18], ecx
jne 0x419ac5
mov dword [ebp - 0x18], edi
test ebx, ebx
jge 0x419acb
xor ebx, ebx
lea esi, [ebx + eax]
cmp esi, dword [ebp - 4]
jle 0x419ad6
mov esi, dword [ebp - 4]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004127f9
push dword [ebp - 0x4c]
mov eax, dword [ebp + 8]
sub esi, ebx
add ebx, eax
push esi
push ebx
call fcn.004104e5
add esp, 0x14
cmp dword [ebp - 0x18], edi
jmp 0x41a047
mov esi, dword [ebp + 0xc]
xor ebx, ebx
lea edi, [ebp - 0x40]
call fcn.0041afaf
mov eax, dword [ebp - 0x40]
add dword [ebp - 0x1c], eax
jmp 0x419759
mov esi, dword [ebp + 0xc]
push 0xffffffffffffffff
call fcn.00417577
test eax, eax
pop ecx
je 0x419b80
mov eax, esi
call fcn.0041886e
test eax, eax
jne 0x419b80
cmp dword [ebp - 4], eax
jne 0x419815
mov edx, dword [ebp + 8]
mov byte [edx], al
call fcn.004c3b34
test eax, eax
jne 0x419b79
test esi, esi
je 0x419b79
mov edi, esi
mov dword [0x5dd8b4], 1
call fcn.0041ae06
push dword [ebp + 8]
mov dword [0x5d47f4], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x5d47f8], eax
pop ecx
mov eax, 0x5dd800
call fcn.004c3b66
pop ecx
push 0x28
jmp 0x41a39f
inc dword [ebp - 0x1c]
jmp 0x419759
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.0041a4b5
mov eax, dword [ebp - 4]
add esp, 0x10
test eax, eax
jg 0x419c0e
mov esi, dword [ebp + 0xc]
call fcn.00418925
test eax, eax
jne 0x419759
call fcn.0041739b
cmp dword [ebp - 0x28], eax
jl 0x419759
mov edi, dword [ebp + 8]
mov eax, edi
or ecx, 0xffffffff
call fcn.0041aff0
push edi
call fcn.005120b0
pop ecx
mov ecx, dword [ebp - 0x14]
mov esi, eax
sub esi, ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
jns 0x419be5
xor esi, esi
lea ebx, [esi + ecx]
cmp ebx, eax
jle 0x419bee
mov ebx, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004127f9
sub ebx, esi
add esi, edi
push 0
push ebx
push esi
call fcn.004104e5
add esp, 0x14
jmp 0x419759
mov ecx, dword [ebp - 0x14]
mov esi, eax
sub esi, ecx
mov dword [ebp - 8], eax
jns 0x419c1c
xor esi, esi
lea ebx, [esi + ecx]
cmp ebx, eax
jle 0x419c25
mov ebx, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004127f9
mov eax, dword [ebp + 8]
sub ebx, esi
add esi, eax
jmp 0x419bfd
mov edi, dword [ebp + 0xc]
lea eax, [ebx - 0x7a]
mov esi, edi
call fcn.0041760d
test eax, eax
je 0x41a17e
push 0
push dword [ebp - 0x20]
xor esi, esi
push dword [ebp - 0x24]
inc esi
push esi
call fcn.0041a4b5
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
add esp, 0x10
mov byte [eax + edx], 0
call fcn.004c3b34
test eax, eax
jne 0x419ca2
test edi, edi
je 0x419ca2
mov dword [0x5dd8b4], esi
call fcn.0041ae06
push dword [ebp + 8]
mov dword [0x5d47f4], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x5d47f8], eax
pop ecx
mov eax, 0x5dd800
call fcn.004c3b66
pop ecx
push esi
mov eax, edi
call fcn.0041768b
pop ecx
lea eax, [ebx - 0xb]
jmp 0x41a4b0
cmp dword [ebp - 4], 0
jle 0x419d4d
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
or ecx, 0xffffffff
call fcn.0041aff0
and dword [ebp - 0x18], 0
xor ebx, ebx
lea esi, [ebp - 0x18]
call fcn.004128bf
mov edi, dword [ebp - 0xc]
jmp 0x419cf8
push 1
push dword [ebp - 0x4c]
call fcn.00434564
and dword [ebp - 0x18], 0
pop ecx
pop ecx
xor ebx, ebx
lea esi, [ebp - 0x18]
call fcn.004128bf
cmp dword [ebp - 0x18], edi
jg 0x419cde
push dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 8], ebx
call fcn.005120b0
mov esi, dword [ebp - 0x14]
cmp esi, eax
pop ecx
jle 0x419d14
mov esi, eax
push dword [ebp - 0x10]
push edi
call fcn.004127f9
push esi
push dword [ebp + 8]
call fcn.0041076d
add esp, 0x10
cmp edi, 0xffffff22
je 0x419d3c
push dword [ebp - 0x10]
push edi
call fcn.004127f9
pop ecx
pop ecx
mov eax, dword [ebp + 8]
call fcn.004c3ab2
mov dword [ebp - 4], ebx
push ebx
jmp 0x41975b
call fcn.004f16be
mov ecx, eax
mov eax, dword [0x5dd8a8]
sub ecx, eax
cmp ecx, 0x3e8
jb 0x419d6b
test eax, eax
jne 0x41a3a2
call fcn.004f16be
mov edi, dword [ebp + 0xc]
mov dword [0x5dd8a8], eax
call fcn.0041ae06
test eax, eax
jne 0x41a3b8
mov eax, edi
call fcn.0041868e
cmp eax, 3
jl 0x41a3b8
cmp dword [0x5dd8ac], 1
jl 0x41a3d8
push 0
push 0
jmp 0x41a171
mov esi, dword [ebp + 0xc]
lea eax, [ebx - 0x3a]
call fcn.0041760d
test eax, eax
je 0x41a17e
push 0
push dword [ebp - 0x20]
xor edi, edi
push dword [ebp - 0x24]
inc edi
push edi
call fcn.0041a4b5
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
add esp, 0x10
mov byte [eax + edx], 0
call fcn.004c3b34
test eax, eax
jne 0x41a413
test esi, esi
je 0x41a413
cmp ebx, 0x42
jne 0x41a3e4
call fcn.004191f3
cmp eax, 2
jne 0x41a3e4
mov dword [0x5dd8b8], edi
jmp 0x41a457
cmp ebx, 0x20
jl 0x41a05f
cmp ebx, 0x7e
jg 0x41a17e
cmp ebx, 0x3d
mov dword [ebp - 0x68], 1
jne 0x419e3d
cmp dword [ebp - 0x5c], esi
je 0x419e3d
mov dword [ebp - 0x18], 0x2b
cmp dword [ebp - 0x48], esi
mov ebx, dword [ebp - 4]
je 0x419e49
cmp ebx, esi
jne 0x419e51
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x48], edi
jmp 0x419e54
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 0x64], esi
je 0x419f01
mov al, byte [ebp - 0x18]
call fcn.004c4ca0
test eax, eax
jne 0x419e90
push dword [ebp - 0x18]
call fcn.004c3b0e
test eax, eax
pop ecx
je 0x41a17e
mov edx, dword [ebp + 8]
mov byte [ebx + edx], 0
call fcn.004c3b34
test eax, eax
je 0x41a17e
jmp 0x419ece
cmp ebx, esi
jle 0x419ece
mov eax, dword [ebp + 8]
movsx eax, byte [esi + eax]
push eax
call fcn.004c3b0e
test eax, eax
pop ecx
je 0x419ec3
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov byte [eax + ebx], 0
mov eax, esi
call fcn.004c461f
cmp dword [ebp - 8], esi
jle 0x419ebf
dec dword [ebp - 8]
dec dword [ebp - 4]
dec esi
mov ebx, dword [ebp - 4]
inc esi
cmp esi, ebx
jl 0x419e94
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 8], 0
jle 0x419f01
mov eax, dword [ebp - 0x38]
dec eax
cmp dword [ebp - 8], eax
jl 0x419f01
cmp ebx, dword [ebp - 8]
jl 0x419f01
sub edi, dword [ebp - 0x48]
mov eax, ebx
imul eax, eax, 0x25
cmp edi, eax
jae 0x419f01
mov esi, dword [ebp + 0xc]
push 1
call fcn.00418ab2
pop ecx
push 0xd
pop esi
call fcn.0040fd9f
cmp ebx, dword [ebp - 0x28]
jge 0x419f3e
call fcn.0040fcf6
test eax, eax
jne 0x419f3e
cmp dword [ebp - 0x6c], eax
je 0x419f18
test ebx, ebx
je 0x419f3e
push dword [ebp - 0x18]
call fcn.004c4ce7
test eax, eax
pop ecx
push 0
je 0x419f2e
push 0
push dword [ebp - 0x20]
jmp 0x419f34
push dword [ebp - 0x20]
push dword [ebp - 0x60]
push 5
call fcn.0041a4b5
add esp, 0x10
mov esi, dword [ebp + 0xc]
call fcn.00418925
test eax, eax
je 0x419f70
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, esi
call fcn.0041874b
pop ecx
pop ecx
mov eax, esi
call fcn.00417e93
call fcn.00418925
test eax, eax
jne 0x41a17e
cmp ebx, dword [ebp - 0x28]
jge 0x41a17e
push dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov edi, dword [ebp + 8]
call fcn.004c4a73
mov edi, dword [ebp - 8]
inc edi
inc dword [ebp - 4]
cmp edi, dword [ebp - 0x28]
pop ecx
mov dword [ebp - 8], edi
jl 0x419fb5
call fcn.0041919b
test eax, eax
je 0x419fb5
push 0xd
pop esi
call fcn.0040fd9f
cmp edi, dword [ebp - 4]
mov dword [ebp - 0x18], 0xffffff22
jne 0x419fcb
mov ecx, dword [ebp - 0xc]
mov esi, edi
sub esi, dword [ebp - 0x14]
jmp 0x41a010
xor ebx, ebx
lea esi, [ebp - 0x18]
call fcn.004128bf
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov eax, ebx
cdq
mov esi, ebx
sub esi, dword [ebp - 0x18]
sub eax, edx
add esi, ecx
sar eax, 1
cmp esi, eax
jl 0x419ffb
mov eax, ecx
sub eax, dword [ebp - 0x18]
inc dword [ebp - 0x18]
lea esi, [eax + edi - 1]
jmp 0x41a010
mov esi, ecx
sub esi, dword [ebp - 0x18]
add ebx, ecx
add esi, edi
cmp dword [ebp - 0x18], ebx
jne 0x41a010
mov dword [ebp - 0x18], 0xffffff22
test esi, esi
jge 0x41a016
xor esi, esi
mov eax, dword [ebp - 0x14]
lea ebx, [esi + eax]
cmp ebx, dword [ebp - 4]
jle 0x41a024
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push ecx
call fcn.004127f9
mov eax, dword [ebp + 8]
push 0
sub ebx, esi
add esi, eax
push ebx
push esi
call fcn.004104e5
add esp, 0x14
cmp dword [ebp - 0x18], 0xffffff22
je 0x41a17e
push dword [ebp - 0x10]
push dword [ebp - 0x18]
call fcn.004127f9
pop ecx
pop ecx
jmp 0x41a17e
cmp ebx, esi
jle 0x41a17e
mov esi, dword [ebp + 0xc]
call fcn.00417503
test eax, eax
je 0x41a17e
mov eax, ebx
jmp 0x41a4b0
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 8]
xor ebx, ebx
cmp dword [ebp - 0x64], ebx
mov byte [edi + eax], 0
je 0x41a0a8
cmp edi, ebx
jne 0x41a0a8
cmp dword [ebp - 0x68], ebx
jne 0x41a0a8
cmp dword [ebp - 0x6c], ebx
je 0x41a0a8
mov esi, dword [ebp + 0xc]
push 1
call fcn.00418ab2
pop ecx
mov eax, dword [ebp + 8]
call fcn.004c3b56
test eax, eax
jne 0x41a0ee
mov edx, dword [ebp + 8]
call fcn.004c3b34
test eax, eax
je 0x41a0ee
mov esi, dword [ebp + 0xc]
xor eax, eax
or ecx, 0xffffffff
call fcn.0041b094
mov eax, dword [ebp + 8]
call fcn.004c3ab2
mov eax, esi
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
call fcn.00417e93
push ebx
push ebx
push dword [ebp - 0x70]
push 2
jmp 0x41a176
mov eax, dword [ebp + 8]
call fcn.004c3b56
test eax, eax
je 0x41a43f
call fcn.004f16be
sub eax, dword [0x5dd8a0]
cmp eax, 0x190
jae 0x41a42d
and dword [ebp - 0x44], ebx
and dword [ebp - 0x18], ebx
mov esi, dword [ebp + 0xc]
lea ebx, [ebp - 0x18]
lea edi, [ebp - 0x44]
call fcn.0041afaf
call fcn.004f16be
mov dword [0x5dd8a0], eax
or eax, 0xffffffff
call fcn.0041b20c
test eax, eax
je 0x41a425
mov eax, esi
call fcn.0041868e
cmp eax, 3
jl 0x41a425
xor eax, eax
cmp dword [ebp - 0x44], eax
jne 0x41a162
cmp dword [ebp - 0x18], eax
je 0x41a425
cmp dword [0x5dd8a4], 2
jl 0x41a457
push eax
push eax
push dword [ebp - 0x50]
push 1
call fcn.0041a4b5
add esp, 0x10
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x41a2e5
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x41a237
add dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, esi
call fcn.0041874b
pop ecx
pop ecx
mov eax, esi
call fcn.00417e93
call fcn.00418925
test eax, eax
jne 0x41a230
lea ebx, [ebp - 0x10]
lea esi, [ebp - 0xc]
call fcn.004128bf
xor ebx, ebx
lea esi, [ebp - 0x44]
mov dword [ebp - 0x44], 0xffffff22
call fcn.004128bf
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0x44]
sub esi, ecx
add ecx, eax
cmp edi, ecx
jne 0x41a1ed
mov edi, 0xffffff22
test esi, esi
jge 0x41a1f3
xor esi, esi
mov ecx, dword [ebp - 0x14]
lea ebx, [esi + ecx]
cmp ebx, dword [ebp - 4]
jle 0x41a201
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push eax
call fcn.004127f9
mov eax, dword [ebp + 8]
push 0
sub ebx, esi
add esi, eax
push ebx
push esi
call fcn.004104e5
add esp, 0x14
cmp edi, 0xffffff22
je 0x41a230
push dword [ebp - 0x10]
push edi
call fcn.004127f9
pop ecx
pop ecx
and dword [ebp - 0x2c], 0
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x41a2e5
add dword [ebp - 0x34], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, esi
call fcn.0041874b
pop ecx
pop ecx
mov eax, esi
call fcn.00417e93
call fcn.00418925
test eax, eax
jne 0x41a2de
lea ebx, [ebp - 0x10]
lea esi, [ebp - 0xc]
call fcn.004128bf
xor ebx, ebx
lea esi, [ebp - 0x44]
mov dword [ebp - 0x44], 0xffffff22
call fcn.004128bf
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0x44]
sub esi, ecx
add ecx, eax
cmp edi, ecx
jne 0x41a29b
mov edi, 0xffffff22
test esi, esi
jge 0x41a2a1
xor esi, esi
mov ecx, dword [ebp - 0x14]
lea ebx, [esi + ecx]
cmp ebx, dword [ebp - 4]
jle 0x41a2af
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push eax
call fcn.004127f9
mov eax, dword [ebp + 8]
push 0
sub ebx, esi
add esi, eax
push ebx
push esi
call fcn.004104e5
add esp, 0x14
cmp edi, 0xffffff22
je 0x41a2de
push dword [ebp - 0x10]
push edi
call fcn.004127f9
pop ecx
pop ecx
and dword [ebp - 0x1c], 0
mov esi, dword [ebp + 0xc]
call fcn.00410230
test eax, eax
je 0x41a2fe
push 0x2710
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.0040fd9a
xor edi, edi
push edi
mov eax, esi
call fcn.0041768b
cmp dword [ebp - 0x78], edi
pop ecx
jbe 0x41a31f
call fcn.004f16be
sub eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x78]
ja 0x41a45e
push 0x76
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x41a338
mov dword [0x5dd8ac], edi
mov dword [0x5dd8a8], edi
push 0x19
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4194a2
mov eax, dword [ebp + 8]
call fcn.004c3ab2
mov eax, dword [ebp + 0xc]
push 1
call fcn.0041768b
pop ecx
mov eax, esi
jmp 0x41a4b0
mov edx, dword [ebp + 8]
mov byte [edx], 0
call fcn.004c3b34
test eax, eax
jne 0x41a39d
test esi, esi
je 0x41a39d
mov dword [0x5dd8b4], edi
mov edi, esi
call fcn.0041ae06
push dword [ebp + 8]
mov dword [0x5d47f4], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x5d47f8], eax
pop ecx
mov eax, 0x5dd800
call fcn.004c3b66
pop ecx
push 0x26
pop esi
jmp 0x41a34d
call fcn.004f16be
and dword [0x5dd8ac], 0
mov edi, dword [ebp + 0xc]
mov dword [0x5dd8a8], eax
jmp 0x41a3be
inc dword [0x5dd8ac]
call fcn.0041ae06
test eax, eax
jle 0x41a3d8
push 0
push 0
push dword [ebp - 0x54]
push 1
call fcn.0041a4b5
add esp, 0x10
mov eax, dword [ebp + 8]
call fcn.004c3ab2
push 0x76
jmp 0x41a39f
mov edi, esi
mov dword [0x5dd8b4], 1
call fcn.0041ae06
push dword [ebp + 8]
mov dword [0x5d47f4], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x5d47f8], eax
pop ecx
mov eax, 0x5dd800
call fcn.004c3b66
pop ecx
push 1
mov eax, esi
call fcn.0041768b
pop ecx
lea eax, [ebx + 0x35]
jmp 0x41a4b0
inc dword [0x5dd8a4]
jmp 0x41a457
call fcn.004f16be
mov dword [0x5dd8a0], eax
mov dword [0x5dd8a4], ebx
jmp 0x41a457
mov eax, dword [ebp - 0x44]
imul edi, edi, 0x25
sub eax, dword [ebp - 0x48]
cmp eax, edi
jae 0x41a457
mov esi, dword [ebp + 0xc]
push 1
call fcn.00418ab2
pop ecx
push 0xd
jmp 0x419349
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov byte [eax + edx], 0
call fcn.004c3b34
test eax, eax
jne 0x41a4a4
cmp esi, edi
je 0x41a4a4
mov edi, esi
mov dword [0x5dd8b4], 1
call fcn.0041ae06
push dword [ebp + 8]
mov dword [0x5d47f4], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x5d47f8], eax
pop ecx
mov eax, 0x5dd800
call fcn.004c3b66
pop ecx
mov esi, 0x92
jmp 0x41a34d
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret