Function at 0x4710ac
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x12b
push 0
push 0
dec ecx
jne 0x4710b5
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x471e7a
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp + 0x10], 0x800
jle 0x4710ea
mov dword [ebp + 0x10], 0x800
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp + 0x10]
jle 0x4710f8
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0xc], eax
mov eax, dword [0x49b418]
mov eax, dword [eax + 0xc]
mov edx, dword [0x49b418]
sub eax, dword [edx + 4]
inc eax
cmp eax, dword [ebp - 0x10]
jne 0x47112d
mov eax, dword [0x49b418]
mov eax, dword [eax + 8]
mov edx, dword [0x49b418]
sub eax, dword [edx]
inc eax
mov edx, dword [ebp - 0xc]
add edx, dword [ebp + 0xc]
cmp eax, edx
jge 0x47112d
dec dword [ebp + 0xc]
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x10]
mov edx, 1
call fcn.004053ac
jmp 0x471155
mov eax, dword [ebp - 8]
mov edx, 0x471e94
call fcn.0040515c
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
cmp eax, dword [ebp + 0x10]
jl 0x471145
mov byte [ebp - 0x16], 1
mov dword [ebp - 4], 1
mov dword [ebp - 0x14], 1
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
call fcn.00404f34
mov byte [ebp - 0x15], 0x20
xor eax, eax
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x14]
jge 0x47119f
mov eax, dword [ebp - 4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
add eax, dword [ebp + 0xc]
cmp eax, dword [ebp - 4]
jge 0x4711b3
mov eax, dword [ebp - 4]
sub eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x14]
call fcn.004053ac
mov edx, dword [ebp - 4]
sub edx, dword [ebp - 0x14]
inc edx
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00455704
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.0046c998
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x3c]
jle 0x471208
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x2c]
call fcn.004710a0
cmp dword [ebp - 0x3c], 0
je 0x47121c
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 0xc]
jge 0x47121c
cmp dword [ebp - 0x30], 0
jge 0x471238
mov eax, dword [0x49b254]
mov edx, dword [ebp - 0x1c]
call fcn.00405568
call fcn.00403158
call fcn.004028f8
jmp 0x4712eb
mov ebx, dword [0x49b214]
movzx ebx, byte [ebx]
cmp dword [ebp - 0x2c], 0
jle 0x471278
lea eax, [ebp - 0x844]
push eax
mov ecx, dword [ebp - 0x2c]
mov edx, 1
mov eax, dword [ebp - 0x1c]
call fcn.004053ac
mov edx, dword [ebp - 0x844]
mov eax, dword [0x49b254]
call fcn.00405568
call fcn.00403158
call fcn.004028f8
mov al, 8
call fcn.0046cabc
lea eax, [ebp - 0x848]
push eax
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
inc edx
mov eax, dword [ebp - 0x1c]
call fcn.004053ac
mov edx, dword [ebp - 0x848]
mov eax, dword [0x49b254]
call fcn.00405568
call fcn.00403158
call fcn.004028f8
mov eax, dword [0x49b214]
mov byte [eax], bl
lea eax, [ebp - 0x84c]
push eax
mov edx, dword [ebp - 0x30]
inc edx
mov ecx, 0x3e7
mov eax, dword [ebp - 0x1c]
call fcn.004053ac
mov edx, dword [ebp - 0x84c]
mov eax, dword [0x49b254]
call fcn.00405568
call fcn.00403158
call fcn.004028f8
mov eax, dword [ebp - 0x1c]
call fcn.00405154
cmp eax, 0x50
jge 0x4712fd
call fcn.0046ca2c
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x14]
add eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.0046c998
cmp dword [0x51e3a8], 0
je 0x47131e
xor eax, eax
call fcn.0046fe4c
call fcn.0046c898
mov ebx, eax
call fcn.0046f964
push 0x10
call sub.user32.dll_GetKeyState
test ax, ax
setl byte [ebp - 0x3d]
test bl, bl
jne 0x471354
call fcn.0046c898
mov byte [ebp - 0x15], al
mov al, byte [ebp - 0x15]
add al, 0xf0
sub al, 3
jae 0x471354
call fcn.0046c898
mov ebx, eax
test bl, bl
jne 0x471a05
cmp byte [ebp - 0x3d], 0
jne 0x47137a
cmp byte [ebp - 0x15], 0xff
je 0x471386
cmp byte [ebp - 0x15], 0xfe
je 0x471386
xor eax, eax
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x3c], eax
jmp 0x471386
cmp dword [ebp - 0x38], 0
jg 0x471386
mov eax, dword [ebp - 4]
mov dword [ebp - 0x38], eax
xor eax, eax
mov al, byte [ebp - 0x15]
cmp eax, 0x5e
jg 0x47140d
je 0x4717aa
add eax, 0xffffffc5
cmp eax, 0x18
ja case.0x4713a2.60
jmp dword [eax*4 + 0x4713a9]
cmp eax, 0x73
jg 0x47143f
je 0x47179e
sub eax, 0x61
je 0x47171c
sub eax, 4
je 0x47176e
dec eax
je 0x471778
sub eax, 2
je 0x4715e6
jmp case.0x4713a2.60
sub eax, 0x74
je 0x471792
add eax, 0xfffffffc
sub eax, 0xa
jb 0x4719f0
sub eax, 0x7c
je 0x47187a
dec eax
je 0x4717b9
jmp case.0x4713a2.60
cmp dword [ebp - 4], 1
jg 0x471479
call fcn.0046fad4
jmp 0x4719f0
dec dword [ebp - 4]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
mov al, byte [eax + edx - 1]
call fcn.0046f75c
jmp 0x4719f0
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
cmp eax, dword [ebp - 4]
jge 0x4714ab
call fcn.0046fad4
jmp 0x4719f0
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
mov al, byte [eax + edx - 1]
call fcn.00402d70
add al, 0xbf
sub al, 0x1a
jb 0x4714c8
add al, 0xfa
sub al, 0x1a
jae 0x4714d4
push 0x12
call sub.user32.dll_GetKeyState
test ax, ax
jl 0x4714e7
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
mov al, byte [eax + edx - 1]
call fcn.0046f75c
jmp 0x471520
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
movzx eax, byte [eax + edx - 1]
lea edx, [ebp - 0x854]
call fcn.00409438
mov ecx, dword [ebp - 0x854]
lea eax, [ebp - 0x850]
mov edx, 0x471ea0
call fcn.004051a0
mov eax, dword [ebp - 0x850]
call fcn.0046f8c0
inc dword [ebp - 4]
jmp 0x4719f0
mov dword [ebp - 4], 1
jmp 0x4719f0
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
inc eax
mov dword [ebp - 4], eax
dec dword [ebp - 4]
cmp dword [ebp - 4], 0
je 0x47155a
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
cmp byte [eax + edx - 1], 0x20
je 0x471542
inc dword [ebp - 4]
jmp 0x4719f0
cmp dword [ebp - 0x38], 0
jle 0x4715b4
cmp dword [ebp - 0x3c], 0
jle 0x4715b4
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x3c]
jle 0x471581
lea edx, [ebp - 0x3c]
lea eax, [ebp - 0x38]
call fcn.004710a0
mov eax, dword [ebp - 0x38]
mov dword [ebp - 4], eax
mov eax, 0x471eb0
call fcn.0046f8c0
mov edi, dword [ebp - 0x38]
mov esi, dword [ebp - 0x3c]
dec esi
sub esi, edi
jl 0x4715a9
inc esi
push ebp
xor eax, eax
call fcn.00470bec
pop ecx
dec esi
jne 0x47159d
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], eax
jmp 0x4719f0
push ebp
mov al, 1
call fcn.00470bec
pop ecx
jmp 0x4719f0
push 0x12
call sub.user32.dll_GetKeyState
movsx eax, ax
shr eax, 0xf
je 0x4715da
mov byte [ebp - 0x15], 0x68
jmp case.0x4713a2.60
push ebp
call fcn.00470d6c
pop ecx
jmp 0x4719f0
call fcn.00470564
jmp 0x4719f0
mov eax, dword [ebp - 4]
mov dword [ebp - 0x2c], eax
jmp 0x4715fb
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 1
jle 0x471610
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 0x2c]
cmp byte [eax + edx - 2], 0x20
jne 0x4715f8
mov eax, dword [ebp - 4]
mov dword [ebp - 0x30], eax
jmp 0x47161b
inc dword [ebp - 0x30]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
cmp eax, dword [ebp - 0x30]
jle 0x471639
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 0x30]
cmp byte [eax + edx - 1], 0x20
jne 0x471618
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 0x30]
cmp byte [eax + edx - 1], 0x20
jne 0x47164b
dec dword [ebp - 0x30]
lea eax, [ebp - 0x34]
push eax
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x2c]
inc ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 0x2c]
call fcn.004053ac
jmp 0x471677
lea eax, [ebp - 0x34]
mov ecx, 1
mov edx, 1
call fcn.004053ec
cmp dword [ebp - 0x34], 0
je 0x4716a9
mov eax, dword [ebp - 0x34]
mov al, byte [eax]
and eax, 0xff
bt dword [0x49a128], eax
jb 0x471665
jmp 0x4716a9
mov eax, dword [ebp - 0x34]
call fcn.00405154
mov edx, eax
lea eax, [ebp - 0x34]
mov ecx, 1
call fcn.004053ec
cmp dword [ebp - 0x34], 0
je 0x4716cc
mov eax, dword [ebp - 0x34]
call fcn.00405154
mov edx, dword [ebp - 0x34]
mov al, byte [edx + eax - 1]
and eax, 0xff
bt dword [0x49a128], eax
jb 0x471692
cmp dword [ebp - 0x34], 0
jne 0x4716dc
call fcn.0046fad4
jmp 0x4719f0
mov eax, dword [ebp - 0x34]
call fcn.0047061c
jmp 0x4719f0
mov al, byte [0x51e3c0]
xor al, 1
mov byte [0x51e3c0], al
cmp byte [0x51e3c0], 0
je 0x47170d
mov eax, 0x471ec0
call fcn.0046f8c0
jmp 0x4719f0
mov eax, 0x471ed0
call fcn.0046f8c0
jmp 0x4719f0
mov eax, 0x471ee0
call fcn.0046f8c0
call fcn.0046fbd8
mov ebx, eax
call fcn.0046c880
test al, al
jne 0x471726
cmp bl, 0x1b
je 0x4719f0
cmp bl, 0xd
je 0x4719f0
call fcn.0046f2f4
xor eax, eax
mov al, bl
sub eax, 0x30
mov edx, dword [0x51e3bc]
call fcn.0046eefc
jmp 0x4719f0
call fcn.00469e08
jmp 0x4719f0
call fcn.00469e34
jmp 0x4719f0
push 0x12
call sub.user32.dll_GetKeyState
test ax, ax
jge case.0x4713a2.60
call fcn.00468e44
jmp 0x4719f0
push ebp
call fcn.00470f18
pop ecx
jmp 0x4719f0
push ebp
call fcn.00470ff4
pop ecx
jmp 0x4719f0
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.0046fe4c
jmp 0x4719f0
cmp dword [ebp - 0x38], 0
jle 0x4717c5
cmp dword [ebp - 0x3c], 0
jg 0x47181f
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
mov ebx, eax
dec ebx
test ebx, ebx
je 0x4717e2
mov eax, dword [ebp - 8]
mov eax, dword [eax]
cmp byte [eax + ebx - 1], 0x20
je 0x4717d1
mov esi, ebx
test esi, esi
jle 0x471803
mov edi, 1
lea eax, [ebp - 0x840]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov dl, byte [edx + edi - 1]
mov byte [eax], dl
inc edi
inc eax
dec esi
jne 0x4717f3
mov byte [ebp + ebx - 0x840], 0xd
inc ebx
mov byte [ebp + ebx - 0x840], 0xa
inc ebx
mov byte [ebp + ebx - 0x840], 0
jmp 0x47186a
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x3c]
jle 0x471832
lea edx, [ebp - 0x3c]
lea eax, [ebp - 0x38]
call fcn.004710a0
mov esi, dword [ebp - 0x3c]
sub esi, dword [ebp - 0x38]
test esi, esi
jle 0x47185c
mov edi, 1
lea eax, [ebp - 0x840]
mov edx, dword [ebp - 0x38]
add edx, edi
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
mov dl, byte [ecx + edx - 2]
mov byte [eax], dl
inc edi
inc eax
dec esi
jne 0x471847
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x38]
mov byte [ebp + eax - 0x840], 0
lea eax, [ebp - 0x840]
call fcn.0046cc10
jmp 0x4719f0
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
mov edx, eax
inc edx
lea eax, [ebp - 0x840]
call fcn.0046cc68
lea edx, [ebp - 0x24]
lea eax, [ebp - 0x840]
call fcn.00409c4c
mov eax, dword [ebp - 0x24]
call fcn.00405154
mov esi, eax
test esi, esi
jle 0x4718da
mov edi, 1
mov eax, dword [ebp - 0x24]
mov al, byte [eax + edi - 1]
cmp al, 0xd
je 0x4718c5
mov edx, dword [ebp - 0x24]
cmp al, 0xa
jne 0x4718d6
lea eax, [ebp - 0x24]
mov ecx, 0x3e7
mov edx, edi
call fcn.004053ec
jmp 0x4718da
inc edi
dec esi
jne 0x4718b3
mov al, byte [ebp - 0x16]
and al, byte [0x51e3a4]
je 0x471915
call fcn.0046fa80
call fcn.0046fa80
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
mov esi, eax
test esi, esi
jle 0x471915
mov edi, 1
mov eax, dword [ebp - 8]
call fcn.004053a4
mov byte [eax + edi - 1], 0x20
inc edi
dec esi
jne 0x471904
cmp dword [ebp - 0x38], 0
jg 0x471929
mov eax, dword [ebp - 4]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x3c], eax
jmp 0x47192f
mov eax, dword [ebp - 0x38]
mov dword [ebp - 4], eax
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
call fcn.00405154
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x858]
push eax
mov ecx, dword [ebp - 0x38]
dec ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, 1
call fcn.004053ac
push dword [ebp - 0x858]
push dword [ebp - 0x24]
lea eax, [ebp - 0x85c]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 0x3e7
mov edx, ebx
call fcn.004053ac
push dword [ebp - 0x85c]
lea eax, [ebp - 0x24]
mov edx, 3
call fcn.00405214
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
push eax
mov eax, dword [ebp - 8]
call fcn.004053a4
mov cl, 0x20
pop edx
call fcn.0040350c
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
mov ecx, eax
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.004053ac
mov eax, dword [ebp - 0x24]
call fcn.00405154
mov esi, eax
test esi, esi
jle 0x4719f0
mov edi, 1
mov eax, dword [ebp - 8]
call fcn.004053a4
mov edx, dword [ebp - 0x24]
mov dl, byte [edx + edi - 1]
mov byte [eax + edi - 1], dl
inc edi
dec esi
jne 0x4719d9
cmp byte [ebp - 0x3d], 0
je 0x471d93
mov eax, dword [ebp - 4]
mov dword [ebp - 0x3c], eax
jmp 0x471d93
mov eax, ebx
sub al, 3
je 0x471a1f
sub al, 0x13
je 0x471a1f
add al, 0x38
sub al, 2
jb 0x471a1f
xor eax, eax
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x15], bl
xor eax, eax
mov al, bl
cmp eax, 0x13
jg 0x471a79
je 0x471bc6
cmp eax, 0xd
ja case.0x471a3a.0
jmp dword [eax*4 + 0x471a41]
cmp eax, 0x1c
jg 0x471aa7
je 0x471ccc
sub eax, 0x15
je 0x471c44
dec eax
je 0x471cc3
sub eax, 3
je 0x471c74
sub eax, 2
je case.0x471a3a.2
jmp case.0x471a3a.0
sub eax, 0x7f
je 0x471ae2
sub eax, 0x5f
je 0x471ac2
dec eax
jne case.0x471a3a.0
jmp 0x471d93
call sub.user32.dll_WaitMessage
call fcn.0046f6c8
test al, al
jne 0x471abd
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.0046fe4c
jmp 0x471d93
mov byte [ebp - 0x15], bl
jmp case.0x4713a2.60
cmp dword [ebp - 4], 1
jle 0x471afe
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
cmp byte [eax + edx - 2], 0x20
je 0x471afe
push ebp
call fcn.00470ff4
pop ecx
mov eax, dword [ebp - 4]
mov dword [ebp - 0x2c], eax
push ebp
call fcn.00470f18
pop ecx
mov eax, dword [ebp - 4]
mov dword [ebp - 0x30], eax
push ebp
call fcn.00470ff4
pop ecx
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
dec esi
sub esi, edi
jl 0x471d93
inc esi
push ebp
cmp edi, dword [ebp - 0x2c]
sete al
call fcn.00470bec
pop ecx
inc edi
dec esi
jne 0x471b28
jmp 0x471d93
cmp dword [ebp - 4], 1
jne 0x471b4e
call fcn.0046fad4
jmp 0x471d93
dec dword [ebp - 4]
push ebp
mov al, 1
call fcn.00470bec
pop ecx
jmp 0x471d93
lea edx, [ebp - 0x95c]
mov eax, dword [ebp - 4]
call fcn.0040392c
lea edx, [ebp - 0x95c]
lea eax, [ebp - 0x24]
call fcn.004050f8
mov eax, dword [ebp - 0x24]
call fcn.0046fe4c
jmp 0x471d93
cmp byte [ebp + 8], 0
je 0x471d93
mov edi, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
mov esi, eax
sub esi, edi
jl 0x471bb7
inc esi
mov eax, dword [ebp - 8]
call fcn.004053a4
mov byte [eax + edi - 1], 0x20
inc edi
dec esi
jne 0x471ba6
mov eax, 0x471ef0
call fcn.0046f8c0
jmp 0x471d93
cmp byte [ebp + 8], 0
je 0x471d93
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
mov ebx, eax
sub ebx, dword [ebp - 4]
inc ebx
mov esi, ebx
test esi, esi
jle 0x471c09
mov edi, 1
mov eax, dword [ebp - 8]
call fcn.004053a4
mov edx, dword [ebp - 4]
add edx, edi
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
mov dl, byte [ecx + edx - 2]
mov byte [eax + edi - 1], dl
inc edi
dec esi
jne 0x471beb
lea edi, [ebx + 1]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
mov esi, eax
sub esi, edi
jl 0x471c2e
inc esi
mov eax, dword [ebp - 8]
call fcn.004053a4
mov byte [eax + edi - 1], 0x20
inc edi
dec esi
jne 0x471c1d
mov dword [ebp - 4], 1
mov eax, 0x471f00
call fcn.0046f8c0
jmp 0x471d93
cmp byte [ebp + 8], 0
je 0x471d93
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x28]
call fcn.00404ef0
mov dword [ebp - 4], 1
call fcn.0046fad4
call fcn.0046fad4
call fcn.0046fad4
jmp 0x471d93
cmp byte [ebp + 8], 0
je 0x471d93
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
mov esi, eax
test esi, esi
jle 0x471ca4
mov edi, 1
mov eax, dword [ebp - 8]
call fcn.004053a4
mov byte [eax + edi - 1], 0x20
inc edi
dec esi
jne 0x471c93
mov eax, 0x471f10
call fcn.0046f8c0
mov dword [ebp - 4], 1
jmp 0x471d93
mov byte [ebp - 0x15], 0xff
jmp 0x471386
mov byte [ebp - 0x15], 0xfe
jmp 0x471386
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
mov esi, eax
test esi, esi
jle 0x471d93
mov edi, 1
lea eax, [ebp - 0x960]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov dl, byte [edx + edi - 1]
call fcn.0040507c
mov eax, dword [ebp - 0x960]
call fcn.004703e0
inc edi
dec esi
jne 0x471ce5
jmp 0x471d93
mov al, byte [ebp - 0x16]
and al, byte [0x51e3a4]
je 0x471d85
mov byte [ebp - 0x1d], 0
mov edi, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
mov esi, eax
sub esi, edi
jl 0x471d44
inc esi
mov eax, dword [ebp - 8]
mov eax, dword [eax]
cmp byte [eax + edi - 1], 0x20
je 0x471d40
mov byte [ebp - 0x1d], 1
inc edi
dec esi
jne 0x471d30
cmp byte [ebp - 0x1d], 0
je 0x471d85
call fcn.0046fa80
call fcn.0046fa80
cmp bl, 0x20
setae al
and al, byte [ebp + 8]
je 0x471d85
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00405154
mov esi, eax
test esi, esi
jle 0x471d85
mov edi, 1
mov eax, dword [ebp - 8]
call fcn.004053a4
mov byte [eax + edi - 1], 0x20
inc edi
dec esi
jne 0x471d74
cmp bl, 0x20
jb 0x471d93
push ebp
mov eax, ebx
call fcn.00470b18
pop ecx
mov byte [ebp - 0x16], 0
jmp 0x471191
mov bl, byte [ebp - 0x15]
mov eax, dword [ebp - 4]
mov dword [0x51e398], eax
call fcn.004556c4
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.0046c998
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 0xc]
mov edx, 1
call fcn.004053ac
mov eax, dword [0x49b254]
mov edx, dword [ebp - 0x1c]
call fcn.00405568
call fcn.00403158
call fcn.004028f8
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.0046c998
mov eax, dword [ebp + 0x10]
inc eax
mov dword [ebp - 4], eax
dec dword [ebp - 4]
cmp dword [ebp - 4], 0
je 0x471e0e
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
cmp byte [eax + edx - 1], 0x20
je 0x471df6
cmp dword [ebp - 4], 0
jne 0x471e1e
mov eax, dword [ebp - 8]
call fcn.00404e9c
jmp 0x471e34
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, dword [ebp - 4]
mov edx, 1
call fcn.004053ac
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x471e81
lea eax, [ebp - 0x960]
call fcn.00404e9c
lea eax, [ebp - 0x85c]
mov edx, 7
call fcn.00404ec0
lea eax, [ebp - 0x34]
call fcn.00404e9c
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.00404ec0
lea eax, [ebp - 0x1c]
call fcn.00404e9c
ret