Function at 0x4128f2
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 [0x519390]
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 0x412942
cmp edi, eax
jne 0x412969
cmp edi, eax
mov dword [0x519380], eax
mov dword [0x519384], eax
mov dword [0x519388], eax
mov dword [0x51938c], eax
mov dword [0x519390], edi
mov dword [0x519398], eax
je 0x413b5f
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x14]
push eax
xor ebx, ebx
xor esi, esi
call fcn.00410b18
mov esi, edi
call fcn.00410cb7
mov byte [ebp - 0x4c], al
call fcn.00410bba
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.00414992
add esp, 0x20
call fcn.0041281c
mov dword [ebp - 0x78], eax
call fcn.004121b7
xor ebx, ebx
test al, 0x4e
mov dword [ebp - 0x5c], ebx
je 0x4129cf
mov dword [ebp - 0x5c], 1
movzx eax, al
shr eax, 5
and eax, 1
mov dword [ebp - 0x64], eax
call fcn.004121e0
push ebx
mov dword [ebp - 0x6c], eax
call fcn.004121f3
cmp dword [0x519398], ebx
pop ecx
je 0x412a08
mov eax, dword [ebp + 8]
call fcn.00477999
mov dword [0x519398], ebx
push 0x77
pop eax
jmp 0x413b61
cmp dword [0x519394], ebx
je 0x412a3c
cmp dword [0x510b3c], ebx
jl 0x412a3c
cmp dword [0x510b40], ebx
jle 0x412a3c
call fcn.004144b7
cmp dword [0x510b3c], eax
jne 0x412a3c
mov eax, dword [0x510b40]
cmp eax, dword [ebp - 0x38]
jne 0x412a3c
xor edi, edi
inc edi
jmp 0x412a3e
xor edi, edi
cmp dword [ebp + 8], ebx
je 0x413b5f
cmp dword [ebp - 0x14], ebx
je 0x413b5f
cmp dword [ebp - 0x28], ebx
je 0x413b5f
cmp edi, ebx
jne 0x412a8d
or dword [0x510b3c], 0xffffffff
or dword [0x510b40], 0xffffffff
mov ecx, 0x5192e0
mov eax, ecx
mov dword [0x519394], ebx
call fcn.00477a38
test eax, eax
jne 0x412a8d
push 0x50
push ebx
push ecx
call fcn.004a8c80
add esp, 0xc
lea ebx, [ebp - 0x10]
lea esi, [ebp - 0xc]
call fcn.0040cd5f
mov eax, dword [ebp - 0x28]
inc eax
push eax
xor esi, esi
push esi
push dword [ebp + 8]
call fcn.004a8c80
add esp, 0xc
cmp edi, esi
mov dword [ebp - 4], esi
mov dword [ebp - 8], esi
je 0x412b4e
xor ecx, ecx
xor edi, edi
cmp byte [0x5192e0], cl
je 0x412af3
mov esi, dword [ebp + 8]
sub esi, 0x5192e0
cmp ecx, dword [0x510b40]
jge 0x412af3
cmp ecx, dword [ebp - 0x28]
jge 0x412af3
inc dword [ebp - 4]
lea eax, [ecx + 0x5192e0]
mov dl, byte [eax]
inc ecx
mov byte [esi + eax], dl
cmp byte [ecx + 0x5192e0], 0
jne 0x412ace
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov ebx, ecx
sub ebx, eax
mov dword [ebp - 8], ecx
jns 0x412b04
xor ebx, ebx
lea esi, [ebx + eax]
cmp esi, ecx
jle 0x412b0d
mov esi, ecx
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040ccb7
mov eax, dword [ebp + 8]
push edi
sub esi, ebx
add ebx, eax
push esi
push ebx
call fcn.0040b272
or dword [0x510b3c], 0xffffffff
or dword [0x510b40], 0xffffffff
add esp, 0x14
push 0x50
push edi
push 0x5192e0
mov dword [0x519394], edi
call fcn.004a8c80
add esp, 0xc
and dword [ebp - 0x68], 0
call fcn.0049a965
mov dword [ebp - 0x74], eax
call fcn.0040ab7b
test eax, eax
mov dword [ebp - 0x44], eax
je 0x413838
call fcn.0049a965
mov dword [ebp - 0x74], eax
call fcn.0040ac1f
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x18]
push 0x1b
pop esi
cmp ebx, esi
je 0x413a00
cmp ebx, 0xd
je 0x413737
push 0xa
pop edi
cmp ebx, edi
je 0x413737
cmp ebx, 8
je 0x412ca6
cmp ebx, 0xe0
je 0x412da9
xor eax, eax
cmp ebx, eax
jne 0x4134ca
call fcn.0040ac1f
mov ebx, eax
cmp ebx, 0x4b
jg 0x412c43
je 0x412c3a
cmp ebx, 0x44
jg 0x412c10
cmp ebx, 0x43
jge 0x413462
cmp ebx, 0x3b
jl 0x413838
cmp ebx, 0x40
jle 0x412bf7
cmp ebx, 0x41
je 0x41336a
cmp ebx, 0x42
jne 0x413838
mov esi, dword [ebp + 0xc]
call fcn.004128b5
cmp eax, 1
jne 0x413462
mov dword [ebp - 0x18], edi
jmp 0x412b7a
sub ebx, 0x47
je 0x412c31
dec ebx
je 0x412c28
dec ebx
jne 0x413838
mov dword [ebp - 0x18], 0x39
jmp 0x412c9c
mov dword [ebp - 0x18], 0x38
jmp 0x412c9c
mov dword [ebp - 0x18], 0x37
jmp 0x412c9c
mov dword [ebp - 0x18], 0x34
jmp 0x412c9c
sub ebx, 0x4c
je 0x412c95
dec ebx
je 0x412c8c
dec ebx
dec ebx
je 0x412c83
dec ebx
je 0x412c7a
dec ebx
je 0x412c71
dec ebx
je 0x412c68
dec ebx
jne 0x413838
mov dword [ebp - 0x18], 0x2e
jmp 0x412c9c
mov dword [ebp - 0x18], 0x30
jmp 0x412c9c
mov dword [ebp - 0x18], 0x33
jmp 0x412c9c
mov dword [ebp - 0x18], 0x32
jmp 0x412c9c
mov dword [ebp - 0x18], 0x31
jmp 0x412c9c
mov dword [ebp - 0x18], 0x36
jmp 0x412c9c
mov dword [ebp - 0x18], 0x35
call fcn.0041e1e7
jmp 0x412b7a
cmp dword [ebp - 8], 0
jle 0x413838
mov esi, dword [ebp + 0xc]
call fcn.0041208d
test eax, eax
je 0x412ce2
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.00411ecf
pop ecx
pop ecx
mov eax, esi
call fcn.00411659
call fcn.0041208d
test eax, eax
jne 0x413838
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.00413b66
mov ebx, dword [ebp + 8]
add esp, 0x10
dec dword [ebp - 8]
mov eax, dword [ebp - 8]
call fcn.0047839d
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.0040cd5f
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 0x412d52
test esi, esi
jle 0x412d52
mov esi, ecx
jmp 0x412d53
dec edi
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
add ecx, eax
cmp edi, ecx
jne 0x412d64
mov edi, 0xffffff22
test esi, esi
jge 0x412d6a
xor esi, esi
lea ebx, [esi + eax]
cmp ebx, dword [ebp - 4]
jle 0x412d75
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040ccb7
push dword [ebp - 0x4c]
mov eax, dword [ebp + 8]
sub ebx, esi
push ebx
add esi, eax
push esi
call fcn.0040b272
add esp, 0x14
cmp edi, 0xffffff22
je 0x413838
push dword [ebp - 0x10]
push edi
jmp 0x41370c
call fcn.0040ac1f
mov ebx, eax
cmp ebx, 0x86
jg 0x413838
cmp ebx, 0x85
jge 0x4132ef
cmp ebx, 0x4d
jg 0x413081
je 0x412f88
sub eax, 0x47
je 0x412ee6
dec eax
je 0x412ea8
dec eax
je 0x412e90
dec eax
dec eax
jne 0x413838
xor esi, esi
cmp dword [ebp - 4], esi
jne 0x412e1e
mov eax, dword [ebp + 0xc]
call fcn.00412036
test eax, eax
je 0x412e1e
cmp dword [ebp - 0x2c], esi
jle 0x412e1e
dec dword [ebp - 0x2c]
push 0
push dword [ebp - 0x20]
push dword [ebp - 0x24]
jmp 0x41382e
cmp dword [ebp - 8], esi
jle 0x413838
push dword [ebp - 0x20]
mov dword [ebp - 0x44], esi
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.00413b66
add esp, 0x10
xor ebx, ebx
lea esi, [ebp - 0x44]
call fcn.0040cd5f
mov edi, dword [ebp - 0xc]
dec dword [ebp - 8]
cmp dword [ebp - 0x44], edi
jg 0x412e82
mov ebx, dword [ebp - 8]
test ebx, ebx
jge 0x412e5b
xor ebx, ebx
mov eax, dword [ebp - 0x14]
lea esi, [ebx + eax]
cmp esi, dword [ebp - 4]
jle 0x412e69
mov esi, dword [ebp - 4]
push dword [ebp - 0x10]
push edi
call fcn.0040ccb7
mov eax, dword [ebp + 8]
push 0
sub esi, ebx
push esi
add ebx, eax
push ebx
jmp 0x412d8c
push 0
push 0
call fcn.0041e2ec
jmp 0x413711
mov esi, dword [ebp + 0xc]
lea ebx, [ebp - 0x40]
xor edi, edi
call fcn.00414642
mov eax, dword [ebp - 0x40]
sub dword [ebp - 0x1c], eax
jmp 0x412e11
mov esi, dword [ebp + 0xc]
xor ebx, ebx
inc ebx
push ebx
call fcn.00410d6d
test eax, eax
pop ecx
je 0x412ede
mov eax, esi
call fcn.00411fea
test eax, eax
jne 0x412ede
cmp dword [ebp - 4], eax
je 0x413a1a
push 0
push str.IllegalKey.wav
call fcn.00475aab
jmp 0x413711
dec dword [ebp - 0x1c]
jmp 0x412e11
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.00413b66
xor edi, edi
add esp, 0x10
cmp dword [ebp - 4], edi
jg 0x412f78
mov esi, dword [ebp + 0xc]
call fcn.0041208d
test eax, eax
jne 0x412e11
call fcn.00410be1
cmp dword [ebp - 0x28], eax
jl 0x412e11
mov eax, dword [ebp + 8]
or ecx, 0xffffffff
call fcn.0041467a
push dword [ebp + 8]
call fcn.004a7f30
mov esi, dword [ebp - 0x14]
cmp esi, eax
pop ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], edi
jle 0x412f41
mov esi, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040ccb7
push edi
push esi
push dword [ebp + 8]
call fcn.0040b272
add esp, 0x14
cmp dword [ebp - 0xc], 0xffffff22
je 0x412e11
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040ccb7
pop ecx
pop ecx
jmp 0x412e11
mov esi, dword [ebp - 0x14]
cmp esi, dword [ebp - 4]
mov dword [ebp - 8], edi
jle 0x412f41
mov esi, dword [ebp - 4]
jmp 0x412f41
mov edi, dword [ebp - 4]
test edi, edi
jne 0x412fa3
mov eax, dword [ebp + 0xc]
call fcn.00412036
test eax, eax
je 0x412fa3
inc dword [ebp - 0x2c]
jmp 0x412e11
cmp dword [ebp - 8], edi
jge 0x41300d
push dword [ebp - 0x20]
and dword [ebp - 0x44], 0
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.00413b66
add esp, 0x10
xor ebx, ebx
lea esi, [ebp - 0x44]
call fcn.0040cd5f
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 0x413003
mov ebx, dword [ebp - 8]
sub ebx, eax
jns 0x412fe4
xor ebx, ebx
lea esi, [ebx + eax]
cmp esi, edi
jle 0x412fed
mov esi, edi
push dword [ebp - 0x10]
push ecx
call fcn.0040ccb7
mov eax, dword [ebp + 8]
push 0
sub esi, ebx
push esi
add ebx, eax
push ebx
jmp 0x413074
call fcn.0041e356
jmp 0x413838
test edi, edi
jg 0x413838
mov esi, dword [ebp + 0xc]
call fcn.0041208d
test eax, eax
jne 0x413838
call fcn.00410be1
cmp dword [ebp - 0x28], eax
jl 0x413838
mov edi, dword [ebp + 8]
mov eax, edi
or ecx, 0xffffffff
call fcn.0041467a
push edi
call fcn.004a7f30
pop ecx
mov ecx, dword [ebp - 0x14]
mov esi, eax
sub esi, ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
jns 0x413058
xor esi, esi
lea ebx, [esi + ecx]
cmp ebx, eax
jle 0x413061
mov ebx, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040ccb7
push 0
sub ebx, esi
push ebx
add esi, edi
push esi
call fcn.0040b272
add esp, 0x14
jmp 0x413838
mov eax, ebx
sub eax, 0x4f
je 0x41323e
dec eax
je 0x4131cd
dec eax
je 0x4131b5
dec eax
dec eax
jne 0x413838
xor ebx, ebx
cmp dword [ebp - 8], ebx
jl 0x412e11
mov edi, dword [ebp - 4]
cmp edi, ebx
jle 0x412e11
mov esi, dword [ebp + 0xc]
call fcn.0041208d
test eax, eax
je 0x4130e8
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.00411ecf
pop ecx
pop ecx
mov eax, esi
call fcn.00411659
call fcn.0041208d
test eax, eax
jne 0x412e11
cmp dword [ebp - 8], edi
jge 0x412e11
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x58]
push 2
call fcn.00413b66
mov eax, dword [ebp - 8]
mov ebx, dword [ebp + 8]
add esp, 0x10
call fcn.0047839d
dec edi
cmp dword [ebp - 8], edi
mov dword [ebp - 4], edi
mov byte [edi + ebx], 0
jl 0x413132
cmp dword [ebp - 8], 0
jle 0x413132
dec dword [ebp - 8]
mov edi, 0xffffff22
xor ebx, ebx
lea esi, [ebp - 0x18]
mov dword [ebp - 0x18], edi
call fcn.0040cd5f
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 0x41316a
test ebx, ebx
jle 0x41316a
mov ebx, ecx
jmp 0x41316d
dec dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
add ecx, eax
cmp dword [ebp - 0x18], ecx
jne 0x41317d
mov dword [ebp - 0x18], edi
test ebx, ebx
jge 0x413183
xor ebx, ebx
lea esi, [ebx + eax]
cmp esi, dword [ebp - 4]
jle 0x41318e
mov esi, dword [ebp - 4]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040ccb7
push dword [ebp - 0x4c]
mov eax, dword [ebp + 8]
sub esi, ebx
add ebx, eax
push esi
push ebx
call fcn.0040b272
add esp, 0x14
cmp dword [ebp - 0x18], edi
jmp 0x413700
mov esi, dword [ebp + 0xc]
xor ebx, ebx
lea edi, [ebp - 0x40]
call fcn.00414642
mov eax, dword [ebp - 0x40]
add dword [ebp - 0x1c], eax
jmp 0x412e11
mov esi, dword [ebp + 0xc]
push 0xffffffffffffffff
call fcn.00410d6d
test eax, eax
pop ecx
je 0x413236
mov eax, esi
call fcn.00411fea
test eax, eax
jne 0x413236
cmp dword [ebp - 4], eax
jne 0x412ecd
mov edi, dword [ebp + 8]
mov edx, edi
mov byte [edi], al
call fcn.00477a16
test eax, eax
jne 0x41322f
test esi, esi
je 0x41322f
mov dword [0x519394], 1
call fcn.004144b7
mov dword [0x510b3c], eax
mov eax, dword [ebp - 0x38]
push edi
push 0x50
mov dword [0x510b40], eax
pop ecx
mov eax, 0x5192e0
call fcn.00477a48
pop ecx
push 0x28
jmp 0x413a58
inc dword [ebp - 0x1c]
jmp 0x412e11
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x3c]
push 2
call fcn.00413b66
mov eax, dword [ebp - 4]
add esp, 0x10
test eax, eax
jg 0x4132c4
mov esi, dword [ebp + 0xc]
call fcn.0041208d
test eax, eax
jne 0x412e11
call fcn.00410be1
cmp dword [ebp - 0x28], eax
jl 0x412e11
mov edi, dword [ebp + 8]
mov eax, edi
or ecx, 0xffffffff
call fcn.0041467a
push edi
call fcn.004a7f30
pop ecx
mov ecx, dword [ebp - 0x14]
mov esi, eax
sub esi, ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
jns 0x41329b
xor esi, esi
lea ebx, [esi + ecx]
cmp ebx, eax
jle 0x4132a4
mov ebx, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040ccb7
sub ebx, esi
add esi, edi
push 0
push ebx
push esi
call fcn.0040b272
add esp, 0x14
jmp 0x412e11
mov ecx, dword [ebp - 0x14]
mov esi, eax
sub esi, ecx
mov dword [ebp - 8], eax
jns 0x4132d2
xor esi, esi
lea ebx, [esi + ecx]
cmp ebx, eax
jle 0x4132db
mov ebx, eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0040ccb7
mov eax, dword [ebp + 8]
sub ebx, esi
add esi, eax
jmp 0x4132b3
mov esi, dword [ebp + 0xc]
lea edi, [ebx - 0x7a]
call fcn.00410def
test eax, eax
je 0x413838
push 0
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push 1
call fcn.00413b66
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 4]
add esp, 0x10
mov edx, edi
mov byte [eax + edi], 0
call fcn.00477a16
test eax, eax
jne 0x413358
test esi, esi
je 0x413358
mov dword [0x519394], 1
call fcn.004144b7
mov dword [0x510b3c], eax
mov eax, dword [ebp - 0x38]
push edi
push 0x50
mov dword [0x510b40], eax
pop ecx
mov eax, 0x5192e0
call fcn.00477a48
pop ecx
push 1
mov eax, esi
call fcn.00410e59
pop ecx
lea eax, [ebx - 0xb]
jmp 0x413b61
cmp dword [ebp - 4], 0
jle 0x413404
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
or ecx, 0xffffffff
call fcn.0041467a
and dword [ebp - 0x18], 0
xor ebx, ebx
lea esi, [ebp - 0x18]
call fcn.0040cd5f
mov edi, dword [ebp - 0xc]
jmp 0x4133af
push 1
push dword [ebp - 0x4c]
call fcn.0041e2ec
and dword [ebp - 0x18], 0
pop ecx
pop ecx
xor ebx, ebx
lea esi, [ebp - 0x18]
call fcn.0040cd5f
cmp dword [ebp - 0x18], edi
jg 0x413395
push dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 8], ebx
call fcn.004a7f30
mov esi, dword [ebp - 0x14]
cmp esi, eax
pop ecx
jle 0x4133cb
mov esi, eax
push dword [ebp - 0x10]
push edi
call fcn.0040ccb7
push esi
push dword [ebp + 8]
call fcn.0040b473
add esp, 0x10
cmp edi, 0xffffff22
je 0x4133f3
push dword [ebp - 0x10]
push edi
call fcn.0040ccb7
pop ecx
pop ecx
mov eax, dword [ebp + 8]
call fcn.00477999
mov dword [ebp - 4], ebx
push ebx
jmp 0x412e13
call fcn.0049a965
mov ecx, eax
mov eax, dword [0x519388]
sub ecx, eax
cmp ecx, 0x3e8
jb 0x413422
test eax, eax
jne 0x413a5b
call fcn.0049a965
mov esi, dword [ebp + 0xc]
mov dword [0x519388], eax
call fcn.004144b7
test eax, eax
jne 0x413a71
mov eax, esi
call fcn.00411e2b
cmp eax, 3
jl 0x413a71
cmp dword [0x51938c], 1
jl 0x413a91
push 0
push 0
jmp 0x41382b
mov esi, dword [ebp + 0xc]
lea edi, [ebx - 0x3a]
call fcn.00410def
test eax, eax
je 0x413838
push 0
push dword [ebp - 0x20]
xor edi, edi
push dword [ebp - 0x24]
inc edi
push edi
call fcn.00413b66
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
add esp, 0x10
mov byte [eax + edx], 0
call fcn.00477a16
test eax, eax
jne 0x413ac6
test esi, esi
je 0x413ac6
cmp ebx, 0x42
jne 0x413a9d
call fcn.004128b5
cmp eax, 2
jne 0x413a9d
mov dword [0x519398], edi
jmp 0x413b0a
cmp ebx, 0x20
jl 0x413718
cmp ebx, 0x7e
jg 0x413838
cmp ebx, 0x3d
mov dword [ebp - 0x68], 1
jne 0x4134f4
cmp dword [ebp - 0x5c], eax
je 0x4134f4
mov dword [ebp - 0x18], 0x2b
cmp dword [ebp - 0x48], eax
mov ebx, dword [ebp - 4]
je 0x413500
cmp ebx, eax
jne 0x413508
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x48], edi
jmp 0x41350b
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 0x64], eax
je 0x4135ba
mov al, byte [ebp - 0x18]
call fcn.004789c3
test eax, eax
jne 0x413547
push dword [ebp - 0x18]
call fcn.004779f0
test eax, eax
pop ecx
je 0x413838
mov edx, dword [ebp + 8]
mov byte [ebx + edx], 0
call fcn.00477a16
test eax, eax
je 0x413838
jmp 0x413587
xor esi, esi
test ebx, ebx
jle 0x413587
mov eax, dword [ebp + 8]
movsx eax, byte [esi + eax]
push eax
call fcn.004779f0
test eax, eax
pop ecx
je 0x41357c
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov byte [eax + ebx], 0
mov eax, esi
call fcn.0047839d
cmp dword [ebp - 8], esi
jle 0x413578
dec dword [ebp - 8]
dec dword [ebp - 4]
dec esi
mov ebx, dword [ebp - 4]
inc esi
cmp esi, ebx
jl 0x41354d
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 8], 0
jle 0x4135ba
mov eax, dword [ebp - 0x38]
dec eax
cmp dword [ebp - 8], eax
jl 0x4135ba
cmp ebx, dword [ebp - 8]
jl 0x4135ba
sub edi, dword [ebp - 0x48]
mov eax, ebx
imul eax, eax, 0x25
cmp edi, eax
jae 0x4135ba
mov esi, dword [ebp + 0xc]
push 1
call fcn.004121f3
pop ecx
push 0xd
pop esi
call fcn.0040ac24
cmp ebx, dword [ebp - 0x28]
jge 0x4135f7
call fcn.0040ab7b
test eax, eax
jne 0x4135f7
xor edx, edx
cmp dword [ebp - 0x6c], edx
je 0x4135d3
cmp ebx, edx
je 0x4135f7
push dword [ebp - 0x18]
call fcn.004789e5
test eax, eax
pop ecx
push edx
je 0x4135e7
push edx
push dword [ebp - 0x20]
jmp 0x4135ed
push dword [ebp - 0x20]
push dword [ebp - 0x60]
push 5
call fcn.00413b66
add esp, 0x10
mov esi, dword [ebp + 0xc]
call fcn.0041208d
test eax, eax
je 0x413629
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.00411ecf
pop ecx
pop ecx
mov eax, esi
call fcn.00411659
call fcn.0041208d
test eax, eax
jne 0x413838
cmp ebx, dword [ebp - 0x28]
jge 0x413838
push dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov edi, dword [ebp + 8]
call fcn.00478799
mov edi, dword [ebp - 8]
inc edi
inc dword [ebp - 4]
cmp edi, dword [ebp - 0x28]
pop ecx
mov dword [ebp - 8], edi
jl 0x41366e
call fcn.00412871
test eax, eax
je 0x41366e
push 0xd
pop esi
call fcn.0040ac24
cmp edi, dword [ebp - 4]
mov dword [ebp - 0x18], 0xffffff22
jne 0x413684
mov ecx, dword [ebp - 0xc]
mov esi, edi
sub esi, dword [ebp - 0x14]
jmp 0x4136c9
xor ebx, ebx
lea esi, [ebp - 0x18]
call fcn.0040cd5f
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 0x4136b4
mov eax, ecx
sub eax, dword [ebp - 0x18]
inc dword [ebp - 0x18]
lea esi, [eax + edi - 1]
jmp 0x4136c9
mov esi, ecx
sub esi, dword [ebp - 0x18]
add ebx, ecx
add esi, edi
cmp dword [ebp - 0x18], ebx
jne 0x4136c9
mov dword [ebp - 0x18], 0xffffff22
test esi, esi
jge 0x4136cf
xor esi, esi
mov eax, dword [ebp - 0x14]
lea ebx, [esi + eax]
cmp ebx, dword [ebp - 4]
jle 0x4136dd
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push ecx
call fcn.0040ccb7
mov eax, dword [ebp + 8]
push 0
sub ebx, esi
add esi, eax
push ebx
push esi
call fcn.0040b272
add esp, 0x14
cmp dword [ebp - 0x18], 0xffffff22
je 0x413838
push dword [ebp - 0x10]
push dword [ebp - 0x18]
call fcn.0040ccb7
pop ecx
pop ecx
jmp 0x413838
cmp ebx, eax
jle 0x413838
mov esi, dword [ebp + 0xc]
call fcn.00410d0d
test eax, eax
je 0x413838
mov eax, ebx
jmp 0x413b61
mov edi, dword [ebp - 4]
mov ebx, dword [ebp + 8]
xor eax, eax
cmp dword [ebp - 0x64], eax
mov byte [edi + ebx], 0
je 0x413761
cmp edi, eax
jne 0x413761
cmp dword [ebp - 0x68], eax
jne 0x413761
cmp dword [ebp - 0x6c], eax
je 0x413761
mov esi, dword [ebp + 0xc]
push 1
call fcn.004121f3
pop ecx
mov eax, ebx
call fcn.00477a38
test eax, eax
jne 0x4137a7
mov edx, ebx
call fcn.00477a16
test eax, eax
je 0x4137a7
mov esi, dword [ebp + 0xc]
xor eax, eax
or ecx, 0xffffffff
call fcn.00414716
mov eax, ebx
call fcn.00477999
mov eax, dword [ebp + 0xc]
xor esi, esi
mov dword [ebp - 4], esi
mov dword [ebp - 8], esi
call fcn.00411659
push esi
push esi
push dword [ebp - 0x70]
push 2
jmp 0x413830
mov eax, ebx
call fcn.00477a38
test eax, eax
je 0x413af2
call fcn.0049a965
sub eax, dword [0x519380]
cmp eax, 0x190
jae 0x413adf
mov esi, dword [ebp + 0xc]
and dword [ebp - 0x44], 0
and dword [ebp - 0x18], 0
lea ebx, [ebp - 0x18]
lea edi, [ebp - 0x44]
call fcn.00414642
call fcn.0049a965
mov dword [0x519380], eax
or eax, 0xffffffff
call fcn.00414875
test eax, eax
je 0x413ad7
mov eax, esi
call fcn.00411e2b
cmp eax, 3
jl 0x413ad7
xor eax, eax
cmp dword [ebp - 0x44], eax
jne 0x41381c
cmp dword [ebp - 0x18], eax
je 0x413ad7
cmp dword [0x519384], 2
jl 0x413b0a
push eax
push eax
push dword [ebp - 0x50]
push 1
call fcn.00413b66
add esp, 0x10
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x41399c
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4138ee
add dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, esi
call fcn.00411ecf
pop ecx
pop ecx
mov eax, esi
call fcn.00411659
call fcn.0041208d
test eax, eax
jne 0x4138ea
lea ebx, [ebp - 0x10]
lea esi, [ebp - 0xc]
call fcn.0040cd5f
xor ebx, ebx
lea esi, [ebp - 0x44]
mov dword [ebp - 0x44], 0xffffff22
call fcn.0040cd5f
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 0x4138a7
mov edi, 0xffffff22
test esi, esi
jge 0x4138ad
xor esi, esi
mov ecx, dword [ebp - 0x14]
lea ebx, [esi + ecx]
cmp ebx, dword [ebp - 4]
jle 0x4138bb
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push eax
call fcn.0040ccb7
mov eax, dword [ebp + 8]
push 0
sub ebx, esi
add esi, eax
push ebx
push esi
call fcn.0040b272
add esp, 0x14
cmp edi, 0xffffff22
je 0x4138ea
push dword [ebp - 0x10]
push edi
call fcn.0040ccb7
pop ecx
pop ecx
and dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x41399c
add dword [ebp - 0x34], eax
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, esi
call fcn.00411ecf
pop ecx
pop ecx
mov eax, esi
call fcn.00411659
call fcn.0041208d
test eax, eax
jne 0x413998
lea ebx, [ebp - 0x10]
lea esi, [ebp - 0xc]
call fcn.0040cd5f
xor ebx, ebx
lea esi, [ebp - 0x44]
mov dword [ebp - 0x44], 0xffffff22
call fcn.0040cd5f
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 0x413955
mov edi, 0xffffff22
test esi, esi
jge 0x41395b
xor esi, esi
mov ecx, dword [ebp - 0x14]
lea ebx, [esi + ecx]
cmp ebx, dword [ebp - 4]
jle 0x413969
mov ebx, dword [ebp - 4]
push dword [ebp - 0x10]
push eax
call fcn.0040ccb7
mov eax, dword [ebp + 8]
push 0
sub ebx, esi
add esi, eax
push ebx
push esi
call fcn.0040b272
add esp, 0x14
cmp edi, 0xffffff22
je 0x413998
push dword [ebp - 0x10]
push edi
call fcn.0040ccb7
pop ecx
pop ecx
and dword [ebp - 0x1c], 0
call fcn.0040afbd
test eax, eax
je 0x4139b5
push 0x2710
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.0040ac1f
mov esi, dword [ebp + 0xc]
push 0
mov eax, esi
call fcn.00410e59
xor ebx, ebx
cmp dword [ebp - 0x78], ebx
pop ecx
jbe 0x4139da
call fcn.0049a965
sub eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x78]
ja 0x413b11
push 0x76
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x4139f3
mov dword [0x51938c], ebx
mov dword [0x519388], ebx
push 0x19
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x412b5a
mov eax, dword [ebp + 8]
call fcn.00477999
mov eax, dword [ebp + 0xc]
push 1
call fcn.00410e59
pop ecx
mov eax, esi
jmp 0x413b61
mov edi, dword [ebp + 8]
mov edx, edi
mov byte [edi], 0
call fcn.00477a16
test eax, eax
jne 0x413a56
test esi, esi
je 0x413a56
mov dword [0x519394], ebx
call fcn.004144b7
mov dword [0x510b3c], eax
mov eax, dword [ebp - 0x38]
push edi
push 0x50
mov dword [0x510b40], eax
pop ecx
mov eax, 0x5192e0
call fcn.00477a48
pop ecx
push 0x26
pop esi
jmp 0x413a08
call fcn.0049a965
and dword [0x51938c], 0
mov esi, dword [ebp + 0xc]
mov dword [0x519388], eax
jmp 0x413a77
inc dword [0x51938c]
call fcn.004144b7
test eax, eax
jle 0x413a91
push 0
push 0
push dword [ebp - 0x54]
push 1
call fcn.00413b66
add esp, 0x10
mov eax, dword [ebp + 8]
call fcn.00477999
push 0x76
jmp 0x413a58
mov dword [0x519394], edi
call fcn.004144b7
push dword [ebp + 8]
mov dword [0x510b3c], eax
mov eax, dword [ebp - 0x38]
push 0x50
mov dword [0x510b40], eax
pop ecx
mov eax, 0x5192e0
call fcn.00477a48
pop ecx
push edi
mov eax, esi
call fcn.00410e59
pop ecx
lea eax, [ebx + 0x35]
jmp 0x413b61
inc dword [0x519384]
jmp 0x413b0a
call fcn.0049a965
and dword [0x519384], 0
mov dword [0x519380], eax
jmp 0x413b0a
mov eax, dword [ebp - 0x44]
imul edi, edi, 0x25
sub eax, dword [ebp - 0x48]
cmp eax, edi
jae 0x413b0a
mov esi, dword [ebp + 0xc]
push 1
call fcn.004121f3
pop ecx
push 0xd
jmp 0x412a02
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov edx, edi
mov byte [eax + edi], 0
call fcn.00477a16
test eax, eax
jne 0x413b55
cmp esi, ebx
je 0x413b55
mov dword [0x519394], 1
call fcn.004144b7
mov dword [0x510b3c], eax
mov eax, dword [ebp - 0x38]
push edi
push 0x50
mov dword [0x510b40], eax
pop ecx
mov eax, 0x5192e0
call fcn.00477a48
pop ecx
mov esi, 0x92
jmp 0x413a08
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret