Function at 0x4016e0
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x268
mov r13, rdx
mov qword [rsp + 0x90], r13
mov rsi, rcx
mov qword [rsp + 0x68], rsi
movsxd rax, dword [rsi]
mov rcx, qword [r13 + 0x10]
mov r8b, byte [rcx + rax]
test r8b, r8b
je 0x40334b
lea rcx, [rsi + 8]
mov qword [rsp + 0x60], rcx
lea rcx, [rsi + 0x18]
mov qword [rsp + 0x78], rcx
lea rcx, [rsi + 0x10]
mov qword [rsp + 0x88], rcx
lea rcx, [r13 + 0x1964]
mov qword [rsp + 0x48], rcx
mov dword [rsp + 0x54], 0x7fffffff
lea rcx, [r13 + 0x1960]
mov qword [rsp + 0x58], rcx
xor edx, edx
jmp 0x403330
mov byte [rsi + 0xc], r8b
movsx ecx, r8b
cmp ecx, 0x7a
ja 0x401800
cmp ecx, 0x5a
ja 0x401820
cmp ecx, 0x3b
ja 0x40191f
mov dword [rsp + 0x84], edx
mov r15, rsi
add ecx, 0xffffffdf
cmp ecx, 9
ja case.0x4017a7.34
lea rdx, [0x00403474]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
cmp dword [r13 + 0x40], 0
jne 0x402459
cmp dword [r13 + 0x1994], 1
jne 0x4017cc
mov rcx, qword [rsp + 0x58]
cmp dword [rcx], 0
jne 0x402649
mov dword [r13 + 0x1968], eax
mov eax, dword [r15 + 4]
mov dword [r13 + 0x196c], eax
mov dword [r13 + 0x1994], 1
mov r12, qword [rsp + 0x58]
jmp 0x4024bb
mov dword [rsp + 0x84], edx
cmp ecx, 0x7b
jne 0x4018a0
mov r15, rsi
mov r12b, 0x7d
jmp 0x401c60
mov dword [rsp + 0x84], edx
mov r15, rsi
mov r12b, 0x5d
cmp ecx, 0x5b
je 0x401c60
cmp ecx, 0x5e
mov r12, qword [rsp + 0x88]
je 0x4024bb
cmp ecx, 0x60
jne case.0x4017a7.34
mov rcx, qword [r13 + 0x10]
inc eax
movsxd rax, eax
movsx edx, byte [rcx + rax]
lea rcx, [0x0042409e]
mov r8d, 1
call fcn.00404930
cmp eax, 0x12
je 0x403413
mov eax, dword [r15]
inc eax
mov dword [r15], eax
movsxd rcx, eax
mov rdx, qword [r13 + 0x10]
mov cl, byte [rdx + rcx]
mov byte [r15 + 0xc], cl
jmp case.0x4017a7.34
cmp ecx, 0x7e
jne 0x401ab3
mov rcx, qword [r13 + 0x10]
inc eax
movsxd rax, eax
cmp byte [rcx + rax], 0x28
jne 0x4033ee
add rcx, rax
mov dword [rsi], eax
mov edx, 0x29
mov r8d, 0x60
call fcn.00404b20
mov dword [rsp + 0x15c], eax
movsxd rax, eax
mov rdx, qword [r13 + 0x10]
cmp byte [rdx + rax], 0
je 0x4033a3
movsxd rax, dword [rsi]
add rdx, rax
mov rcx, qword [r13 + 0x30]
mov r8d, 0x29
mov r9d, 0x60
call fcn.00404b90
mov eax, dword [rsi]
mov ecx, dword [rsp + 0x15c]
lea eax, [rcx + rax + 1]
mov dword [rsi], eax
mov edx, dword [rsp + 0x84]
jmp 0x40204a
mov dword [rsp + 0x84], edx
cmp ecx, 0x3c
je 0x401c54
cmp ecx, 0x3f
jne 0x401f9f
movsxd rax, dword [rsi + 4]
mov rcx, qword [r13]
mov dl, byte [rcx + rax]
test dl, dl
je 0x4033b0
nop dword [rax + rax]
mov rcx, qword [r13 + 0x28]
movsx edx, dl
mov r8d, 1
call fcn.00404930
movsxd rax, eax
mov rcx, qword [r13 + 0x28]
cmp byte [rcx + rax], 0
jne 0x40338d
mov rcx, qword [r13 + 0x30]
cmp byte [rcx], 0
je 0x4019a4
movsxd rax, dword [rsi + 4]
mov rdx, qword [r13]
movsx edx, byte [rdx + rax]
mov r8d, 1
call fcn.00404930
movsxd rax, eax
mov rcx, qword [r13 + 0x30]
cmp byte [rcx + rax], 0
je 0x40338d
cmp dword [r13 + 0x40], 0
jne 0x401a00
cmp qword [r13 + 0x1958], 0
je 0x401a00
cmp dword [r13 + 0x1994], 1
jne 0x401a00
mov rax, qword [r13 + 0x1970]
test rax, rax
je 0x4019f4
mov ecx, dword [r13 + 0x1990]
mov edx, dword [r13 + 0x1998]
cmp edx, ecx
jbe 0x4019ee
movsxd rdx, dword [rsi + 4]
mov rbp, qword [r13]
mov dl, byte [rbp + rdx]
mov byte [rax + rcx], dl
jmp 0x4019f4
dec edx
mov byte [rax + rdx], 0
inc dword [r13 + 0x1990]
nop dword [rax + rax]
mov edx, dword [rsi + 4]
inc edx
mov dword [rsi + 4], edx
mov eax, dword [rsi + 0x14]
lea ecx, [rax + 1]
mov dword [rsi + 0x14], ecx
mov ebp, dword [rsi + 0x10]
cmp ebp, dword [r13 + 8]
jge 0x401a30
dec ebp
mov rbx, qword [rsp + 0x88]
mov dword [rbx], ebp
jne 0x401a38
jmp 0x401a4b
cmp ebp, 0x7fffffff
je 0x401a4b
movsxd rdx, edx
mov rbp, qword [r13]
mov dl, byte [rbp + rdx]
test dl, dl
jne 0x401950
test ecx, ecx
je 0x4033b0
mov ecx, dword [r13 + 8]
mov rdx, qword [rsp + 0x88]
mov edx, dword [rdx]
cmp edx, ecx
setl r8b
test edx, edx
setg bl
test bl, r8b
jne 0x4033b0
cmp edx, ecx
je 0x4033b0
cmp dword [r13 + 0x40], 0
jne 0x401a8f
test eax, eax
js 0x401a8f
mov rax, qword [rsp + 0x78]
inc dword [rax]
mov qword [rsi + 0x10], 0x7fffffff
inc dword [rsi + 0x1c]
inc dword [rsi]
cmp dword [r13 + 0x40], 1
mov edx, dword [rsp + 0x84]
jne 0x40204a
jmp 0x4033e1
mov r15, rsi
mov rbx, r15
movsxd rcx, dword [rbx + 4]
mov rdx, qword [r13]
mov dl, byte [rdx + rcx]
test dl, dl
je 0x401ba0
jmp 0x401ad2
mov eax, dword [rbx]
movsxd rax, eax
mov rbp, qword [r13 + 0x10]
cmp dl, byte [rbp + rax]
jne 0x401b8a
cmp dword [r13 + 0x40], 0
jne 0x401b40
cmp qword [r13 + 0x1958], 0
je 0x401b40
cmp dword [r13 + 0x1994], 1
jne 0x401b40
mov rax, qword [r13 + 0x1970]
test rax, rax
je 0x401b27
mov ebp, dword [r13 + 0x1990]
mov ecx, dword [r13 + 0x1998]
cmp ecx, ebp
jbe 0x401b21
mov byte [rax + rbp], dl
jmp 0x401b27
dec ecx
mov byte [rax + rcx], 0
inc dword [r13 + 0x1990]
mov ecx, dword [rbx + 4]
nop word cs:[rax + rax]
inc ecx
mov dword [rbx + 4], ecx
inc dword [rbx + 0x14]
mov eax, dword [rbx + 0x10]
cmp eax, dword [r13 + 8]
jge 0x401b70
dec eax
mov rdx, qword [rsp + 0x88]
mov dword [rdx], eax
jne 0x401b77
jmp 0x401fb5
cmp eax, 0x7fffffff
je 0x401ba0
movsxd rax, ecx
mov rdx, qword [r13]
mov dl, byte [rdx + rax]
test dl, dl
je 0x401ba0
jmp 0x401ad0
cmp dword [rsp + 0x54], 0
jne 0x403396
cmp dword [rbx + 0x14], 0
jle 0x403396
nop
mov rax, qword [rsp + 0x88]
mov eax, dword [rax]
test eax, eax
mov edx, dword [rsp + 0x84]
jle 0x401fc0
cmp eax, dword [r13 + 8]
jge 0x401fc0
mov edi, edx
mov edx, dword [rbx + 0x1c]
cmp edx, dword [rbx + 0x18]
jl 0x4033b0
mov dword [rsp + 0x15c], 0
dec eax
mov rdx, qword [rsp + 0x88]
mov dword [rdx], eax
xor eax, eax
mov edx, ecx
nop dword [rax]
mov ebp, dword [r13 + 8]
dec ebp
cmp ecx, ebp
jge 0x403357
movsxd rdx, dword [rbx]
mov rax, qword [r13]
mov rbp, qword [r13 + 0x10]
mov dl, byte [rbp + rdx]
movsxd rcx, ecx
mov byte [rax + rcx], dl
mov ecx, dword [rsp + 0x15c]
lea eax, [rcx + 1]
mov dword [rsp + 0x15c], eax
mov ebp, dword [rbx + 0x10]
lea edx, [rbp - 1]
mov dword [rbx + 0x10], edx
mov edx, dword [rbx + 4]
lea ecx, [rcx + rdx + 1]
test ebp, ebp
jg 0x401bf0
mov rax, qword [r13]
movsxd rcx, ecx
mov byte [rax + rcx], 0
mov eax, dword [rsp + 0x15c]
add dword [rbx + 4], eax
mov edx, edi
jmp 0x40200c
mov r15, rsi
mov r12b, 0x3e
nop word [rax + rax]
mov dword [rsp + 0x15c], 0
movsxd rcx, eax
mov rdx, qword [r13 + 0x10]
mov bl, byte [rdx + rcx]
mov r10d, dword [r15 + 0x20]
xor ecx, ecx
test bl, bl
mov r11d, r10d
je 0x401d20
lea ebp, [rax - 1]
movzx r9d, r12b
xor edi, edi
mov r11d, r10d
nop word cs:[rax + rax]
cmp bl, r8b
mov ecx, 0
jne 0x401cd0
nop word [rax + rax]
lea esi, [rbp + rcx]
movsxd rsi, esi
dec ecx
cmp byte [rdx + rsi], 0x60
je 0x401cb0
neg ecx
and ecx, 1
jmp 0x401cf5
movsx esi, bl
xor ecx, ecx
cmp esi, r9d
mov esi, ebp
jne 0x401cf8
nop dword [rax]
movsxd rbx, esi
add ecx, 0x80000000
lea esi, [rbx - 1]
cmp byte [rdx + rbx], 0x60
je 0x401ce0
sar ecx, 0x1f
add r11d, ecx
cmp r10d, r11d
je 0x401d1b
lea ecx, [rdi + 1]
mov dword [rsp + 0x15c], ecx
lea esi, [rdi + rax + 1]
movsxd rsi, esi
mov bl, byte [rdx + rsi]
inc ebp
test bl, bl
mov edi, ecx
jne 0x401ca0
jmp 0x401d20
mov ecx, edi
mov r11d, r10d
cmp r10d, r11d
jne 0x4033a3
add ecx, eax
mov dword [rsp + 0x15c], ecx
movsxd rax, ecx
mov esi, dword [r15 + 0x10]
mov byte [rdx + rax], 0
inc dword [r15]
mov rcx, r15
nop word cs:[rax + rax]
mov rdi, rcx
mov rdx, r13
call fcn.004034a0
cmp dword [rax + 8], 0
jne 0x401dcd
mov dword [rdi + 0x10], esi
mov rax, qword [r13 + 0x38]
mov eax, dword [rax + 4]
cmp eax, dword [rdi + 4]
jle 0x401d76
mov dword [rdi + 4], eax
inc dword [rdi + 0x14]
mov rcx, rdi
mov eax, dword [r13 + 8]
cmp esi, eax
jge 0x401da0
xor eax, eax
dec esi
mov rdx, qword [rsp + 0x88]
mov dword [rdx], esi
jne 0x401dae
jmp 0x401dd2
cmp esi, 0x7fffffff
je 0x401dd0
cmp esi, eax
mov eax, esi
jg 0x401dd2
cmp dword [r13 + 0x44], 1
jne 0x401d50
mov rax, qword [rsp + 0x88]
mov dword [rax], 0x7fffffff
mov dword [r13 + 0x44], 0
jmp 0x401dd0
mov rcx, rdi
mov eax, esi
mov rbp, qword [r13 + 0x10]
movsxd rdx, dword [rsp + 0x15c]
mov byte [rbp + rdx], r12b
mov rdx, qword [rsp + 0x88]
mov dword [rdx], eax
mov rax, qword [rsp + 0x60]
mov eax, dword [rax]
cmp eax, 0x63
jg 0x401e19
test eax, eax
jne 0x4033bd
mov rdx, rcx
cmp dword [rdx + 0x14], 0
jle 0x401ed0
mov ecx, dword [rdx + 0x18]
mov dword [rdx + 0x1c], ecx
jmp 0x401ed0
cmp eax, 0x66
je 0x401e79
lea edx, [rax - 0x67]
cmp edx, 1
mov rdx, rcx
ja 0x401ed0
mov rcx, rdx
mov rdx, qword [r13 + 0x38]
mov ebp, dword [rdx + 0x1c]
cmp ebp, dword [rdx + 0x18]
jge 0x4033c1
cmp r12b, 0x7d
je 0x4033c1
cmp r12b, 0x5d
je 0x401e63
cmp r12b, 0x3e
jne 0x401ebb
mov ebp, dword [rcx + 0x14]
test ebp, ebp
je 0x4033c1
jle 0x401ebb
mov edi, dword [rdx + 4]
mov ebp, dword [rcx + 4]
mov ebx, dword [rcx + 0x18]
lea ebp, [rbp + rbx - 1]
cmp edi, ebp
jle 0x401ebb
jmp 0x4033c1
mov rdx, qword [r13 + 0x38]
mov ebp, dword [rdx + 0x1c]
cmp ebp, dword [rdx + 0x18]
jge 0x4033c1
cmp r12b, 0x7d
je 0x4033c1
cmp r12b, 0x3e
jne 0x401ea3
cmp dword [rcx + 0x14], 0
je 0x4033c1
movsxd rbx, dword [rdx + 4]
cmp ebx, dword [rcx + 4]
jle 0x401ebb
mov rbp, qword [r13]
cmp byte [rbp + rbx], 0
je 0x4033c1
mov rdx, rcx
cmp dword [rdx + 0x14], 0
jle 0x401ed0
inc dword [rdx + 0x1c]
nop word [rax + rax]
cmp dword [r13 + 0x1994], 1
mov rsi, rdx
jne 0x401f30
test eax, eax
je 0x401f30
cmp dword [r13 + 0x40], 0
jne 0x401f30
cmp byte [rsi + 0xc], 0x5b
je 0x401f30
cmp qword [r13 + 0x1958], 0
je 0x401f23
mov dword [r13 + 0x1990], 0
mov qword [r13 + 0x1960], 0
mov qword [r13 + 0x1968], 0xffffffffffffffff
mov rax, qword [r13 + 0x1970]
mov byte [rax], 0
mov dword [r13 + 0x1994], 0
nop
mov dword [rsi + 8], 0
mov rax, qword [r13 + 0x38]
mov al, byte [rax + 0xc]
mov byte [rsi + 0xc], al
mov rcx, qword [r13 + 0x38]
mov rdx, rsi
mov r8d, 0x30
call fcn.004015e0
mov eax, dword [r13 + 0x40]
test eax, eax
jne 0x401f71
cmp dword [rsi + 0x14], 0
mov edx, dword [rsp + 0x84]
jle 0x401f87
mov rax, qword [rsp + 0x78]
inc dword [rax]
jmp 0x401f87
cmp eax, 1
mov edx, dword [rsp + 0x84]
jne 0x401f87
cmp dword [rsi + 0x14], 0
jg 0x4033e1
mov qword [rsi + 0x10], 0x7fffffff
mov eax, dword [rsp + 0x15c]
inc eax
mov dword [rsi], eax
jmp 0x40204a
mov r15, rsi
cmp ecx, 0x40
mov r12, qword [rsp + 0x78]
je 0x4024bb
jmp case.0x4017a7.34
mov edx, dword [rsp + 0x84]
nop dword [rax]
cmp dword [rbx + 0x14], 0
jne 0x40200c
mov eax, dword [rbx + 0x1c]
cmp eax, dword [rbx + 0x18]
jl 0x4033b0
mov eax, dword [r13 + 8]
dec eax
cmp ecx, eax
jge 0x4033fb
mov edi, edx
movsxd rdx, dword [rbx]
mov rax, qword [r13]
mov rbp, qword [r13 + 0x10]
mov dl, byte [rbp + rdx]
movsxd rcx, ecx
mov byte [rax + rcx], dl
mov edx, edi
mov rax, qword [r13]
mov ecx, dword [rbx + 4]
inc ecx
movsxd rcx, ecx
mov byte [rax + rcx], 0
inc dword [rbx + 4]
mov eax, dword [rbx + 0x1c]
inc eax
mov dword [rbx + 0x1c], eax
inc dword [rbx]
mov ecx, dword [r13 + 0x40]
test ecx, ecx
jne 0x40202d
cmp dword [rbx + 0x14], 0
jle 0x40203f
mov rax, qword [rsp + 0x78]
inc dword [rax]
jmp 0x40203f
cmp ecx, 1
jne 0x40203f
mov rcx, qword [rsp + 0x78]
cmp dword [rcx], eax
je 0x4033e1
mov qword [rbx + 0x10], 0x7fffffff
mov rsi, rbx
movsxd rax, dword [rsi]
mov rcx, qword [r13 + 0x10]
mov r8b, byte [rcx + rax]
test r8b, r8b
jne 0x403330
jmp 0x403380
mov dword [r13 + 0x44], 1
jmp 0x4024b3
mov rdx, qword [r13 + 0x19a0]
mov ecx, dword [rdx]
test ecx, ecx
je 0x402096
mov rdx, qword [rdx + 8]
xor ebp, ebp
mov rbx, qword [rdx + rbp*8]
cmp dword [rbx], eax
je 0x402490
inc rbp
cmp ebp, ecx
jb 0x402083
mov qword [r15 + 0x28], 0
jmp 0x4024a1
movsxd rcx, eax
add rcx, qword [r13 + 0x10]
mov edx, 0x29
mov r8d, 0x60
call fcn.00404b20
mov dword [rsp + 0x15c], eax
movsxd rax, eax
mov rdx, qword [r13 + 0x10]
cmp byte [rdx + rax], 0
je 0x4033a3
mov rsi, r15
movsxd rax, dword [rsi]
add rdx, rax
mov rcx, qword [r13 + 0x28]
jmp 0x4018f3
inc eax
mov dword [rsp + 0x15c], eax
mov ecx, dword [r13 + 0x1994]
mov dword [rsp + 0x98], ecx
mov rcx, r15
mov r15d, dword [rcx + 0x20]
mov r12, rcx
xor esi, esi
mov ebp, r15d
xor edi, edi
xor r13d, r13d
xor r14d, r14d
mov dword [rsp + 0x74], r15d
jmp 0x402122
inc eax
mov dword [rsp + 0x15c], eax
movsxd rdx, eax
mov rcx, qword [rsp + 0x90]
mov rcx, qword [rcx + 0x20]
mov dl, byte [rcx + rdx]
cmp dl, 0x20
ja 0x402146
test dl, dl
jne 0x4022b0
jmp 0x402406
cmp dl, 0x3b
ja 0x4021d5
cmp dl, 0x21
jne 0x4022b0
inc eax
mov dword [rsp + 0x15c], eax
movsxd rax, eax
add rcx, rax
lea rdx, [0x00424090]
xor r8d, r8d
mov r9d, 4
call fcn.00404a90
mov ecx, eax
cmp ecx, 3
mov eax, 3
cmovg ecx, eax
mov eax, dword [rsp + 0x15c]
cmp dword [rsp + 0x98], 0
mov dword [rsp + 0x98], 0
jne 0x402122
test ecx, ecx
mov dword [rsp + 0x98], 0
jle 0x402122
add eax, ecx
mov dword [rsp + 0x15c], eax
mov dword [rsp + 0x98], 1
jmp 0x402122
cmp dl, 0x5a
ja 0x4021ed
cmp dl, 0x3c
je 0x40225d
cmp dl, 0x3e
je 0x402272
jmp 0x4022b0
cmp dl, 0x7a
ja 0x402258
cmp dl, 0x5b
je 0x40225d
cmp dl, 0x5d
je 0x402272
cmp dl, 0x60
jne 0x4022b0
inc eax
movsxd rax, eax
movsx edx, byte [rcx + rax]
lea rcx, [0x0042409e]
mov r8d, 1
call fcn.00404930
cmp eax, 0x12
je 0x403413
cmp ebp, r15d
setg cl
test edi, edi
sete dl
mov eax, dword [rsp + 0x15c]
test dl, cl
jne 0x402249
cmp r13d, 1
jne 0x4023c6
add eax, 2
mov dword [rsp + 0x15c], eax
jmp 0x402122
cmp dl, 0x7b
jne 0x40226d
inc eax
mov dword [rsp + 0x15c], eax
inc ebp
jmp 0x402122
cmp dl, 0x7d
jne 0x4022b0
cmp edi, 1
jne 0x40228e
cmp ebp, r15d
jg 0x40228e
cmp dl, 0x3e
je 0x402406
cmp dl, 0x7d
je 0x402406
inc eax
mov dword [rsp + 0x15c], eax
cmp ebp, r15d
lea ebp, [rbp - 1]
mov ecx, 1
cmovle edi, ecx
xor r13d, r13d
mov r14d, esi
jmp 0x402122
cmp dl, 0x7b
ja 0x4022d8
cmp dl, 0x23
je 0x4022c4
cmp dl, 0x2a
je 0x4022c4
cmp dl, 0x3f
jne 0x4022fb
inc eax
mov dword [rsp + 0x15c], eax
mov r13d, 1
jmp 0x402122
cmp dl, 0x7c
jne 0x4022fb
mov r13d, 1
test edi, edi
je 0x402119
cmp dword [rsp + 0x74], ebp
cmovge r14d, esi
xor r13d, r13d
jmp 0x402119
cmp ebp, r15d
setg r8b
test edi, edi
sete bl
test bl, r8b
jne 0x402119
cmp r13d, 1
je 0x402119
cmp dl, 0x7d
ja 0x402369
cmp dl, 0x28
je 0x402384
cmp dl, 0x40
je 0x402332
cmp dl, 0x5e
jne 0x4023cf
inc eax
mov dword [rsp + 0x15c], eax
movsxd rax, eax
add rcx, rax
lea rdx, [0x00424090]
xor r8d, r8d
mov r9d, 4
call fcn.00404a90
add eax, dword [rsp + 0x15c]
mov dword [rsp + 0x15c], eax
jmp 0x402122
cmp dl, 0x7e
jne 0x4023cf
inc eax
movsxd rdx, eax
cmp byte [rcx + rdx], 0x28
jne 0x4033ee
mov dword [rsp + 0x15c], eax
movsxd rax, eax
add rcx, rax
mov edx, 0x29
mov r8d, 0x60
call fcn.00404b20
add eax, dword [rsp + 0x15c]
mov dword [rsp + 0x15c], eax
movsxd rcx, eax
mov rdx, qword [rsp + 0x90]
mov rdx, qword [rdx + 0x10]
cmp byte [rdx + rcx], 0
jne 0x402119
jmp 0x4033a3
inc eax
mov dword [rsp + 0x15c], eax
cmp r14d, esi
jne 0x402119
movsxd rcx, eax
mov rdx, qword [rsp + 0x90]
add rcx, qword [rdx + 0x20]
movsxd rdx, esi
mov qword [rsp + rdx*8 + 0xa0], rcx
inc esi
cmp edi, 1
je 0x402406
cmp esi, 0xa
mov dword [rsp + 0x74], ebp
jne 0x402119
mov dword [rsp + 0x98], esi
mov rdi, r12
movsxd r10, dword [rdi + 4]
mov r13, qword [rsp + 0x90]
mov r8, qword [r13]
cmp byte [r8 + r10], 0
jne 0x402482
mov r9d, dword [rdi + 0x14]
mov edx, dword [rsp + 0x84]
movsxd rax, r10d
mov rcx, qword [r13]
mov al, byte [rcx + rax]
test r9d, r9d
je 0x403420
mov dword [rsp + 0x84], edx
test al, al
jne 0x402e4c
jmp 0x402e2a
mov rax, qword [rsp + 0x48]
cmp dword [rax], 0
mov r12, rax
je 0x4024bb
mov rax, qword [rsp + 0x48]
mov dword [rax], 0
mov rsi, r15
inc dword [rsi]
mov edx, dword [rsp + 0x84]
jmp 0x40204a
xor ebx, ebx
mov edx, dword [rsp + 0x84]
jmp 0x4027ef
mov qword [r15 + 0x28], rbx
test rbx, rbx
lea r12, [rsp + 0x15c]
jne 0x4024bb
mov rcx, qword [r13 + 0x19a0]
mov edx, eax
call fcn.00403f10
mov qword [r15 + 0x28], rax
lea r12, [rsp + 0x15c]
mov eax, dword [r15]
inc eax
mov dword [r15], eax
movsxd rdx, eax
add rdx, qword [r13 + 0x10]
mov dword [rsp + 0x20], 4
lea rcx, [rsp + 0xf3]
lea r8, [0x00424090]
xor r9d, r9d
call fcn.004049e0
mov dword [rsp + 0x15c], eax
add dword [r15], eax
mov rsi, r15
test eax, eax
jne 0x402512
mov dword [rsp + 0x15c], 1
mov byte [rsp + 0xf3], 0x30
mov eax, 1
movsxd rax, eax
mov byte [rsp + rax + 0xf3], 0
mov dword [r12], 0
lea rcx, [rsp + 0xf3]
lea rdx, [0x0042409b]
mov r8, r12
call fcn.004153e0
mov al, byte [rsi + 0xc]
cmp al, 0x5d
ja 0x402577
cmp al, 0x3f
mov edx, dword [rsp + 0x84]
ja 0x4025b8
cmp al, 0x21
je 0x4025e1
cmp al, 0x24
jne 0x40263c
mov rax, qword [rsi + 0x28]
mov ecx, dword [r12]
mov dword [rax + 4], ecx
cmp ecx, dword [rax + 8]
jg 0x40204a
jmp 0x403396
cmp al, 0x5e
mov edx, dword [rsp + 0x84]
jne 0x40204a
mov eax, dword [r13 + 8]
mov ecx, dword [r12]
mov dword [rsp + 0x54], ecx
test ecx, ecx
je 0x40259c
cmp dword [rsp + 0x54], eax
jl 0x4025a0
mov dword [r12], eax
cmp dword [r13 + 0x40], 1
jne 0x40204a
mov dword [r12], 0x7fffffff
jmp 0x40204a
cmp al, 0x40
jne 0x40204a
mov eax, dword [r12]
test eax, eax
jne 0x4025d5
mov dword [r12], 1
mov eax, 1
add eax, dword [rsi + 0x1c]
mov dword [r12], eax
jmp 0x40204a
cmp dword [r13 + 0x40], 0
jne 0x40204a
cmp dword [r12], 0
jne 0x40204a
cmp qword [r13 + 0x1958], 0
je 0x40262c
mov dword [r13 + 0x1990], 0
mov qword [r13 + 0x1960], 0
mov qword [r13 + 0x1968], 0xffffffffffffffff
mov rax, qword [r13 + 0x1970]
mov byte [rax], 0
mov dword [r13 + 0x1994], 0
jmp 0x40204a
cmp al, 0x23
jne 0x40204a
jmp 0x403434
cmp qword [r13 + 0x1958], 0
je 0x402ddc
mov rax, qword [r13 + 0x1970]
test rax, rax
je 0x402d6e
mov edx, dword [r13 + 0x1990]
mov ecx, dword [r13 + 0x1998]
cmp ecx, edx
jbe 0x402d68
mov byte [rax + rdx], 0
jmp 0x402d6e
test rbx, rbx
je 0x402bdd
inc r13d
mov dword [rsp + 0x144], r13d
cmp r13d, r9d
jge 0x402bdd
mov cl, byte [rbx + 1]
test cl, cl
je 0x402bdd
mov esi, 1
xor r13d, r13d
mov ebp, 1
xor edi, edi
jmp 0x4026c7
mov r8, qword [r12]
mov r10d, dword [r14 + 4]
add r10d, ebp
movsxd rax, r10d
cmp byte [r8 + rax], 0
je 0x402bdd
cmp cl, 0x7a
ja 0x4026ee
cmp cl, 0x5a
ja 0x402703
cmp cl, 0x3c
je 0x402730
cmp cl, 0x3e
je 0x40270d
jmp 0x40275b
cmp cl, 0x7b
je 0x402730
cmp cl, 0x7c
je 0x40279c
cmp cl, 0x7d
jne 0x40275b
jmp 0x40270d
cmp cl, 0x5b
je 0x402730
cmp cl, 0x5d
jne 0x402734
test edi, edi
je 0x4027c0
cmp edi, 1
jne 0x40272c
cmp cl, 0x3e
je 0x4027c0
cmp cl, 0x7d
je 0x4027c0
dec edi
jmp 0x4027ab
inc edi
jmp 0x4027ab
cmp cl, 0x60
jne 0x40275b
inc esi
movsxd rax, esi
movsx edx, byte [rbx + rax]
lea rcx, [0x0042409e]
mov r8d, 1
call fcn.00404930
cmp eax, 0x12
jne 0x402760
jmp 0x4027cc
cmp cl, 0x21
je 0x4027ab
test r13d, r13d
jne 0x4027ab
mov eax, dword [r14 + 4]
add eax, ebp
movsxd rax, eax
mov rcx, qword [r12]
mov al, byte [rcx + rax]
movsxd rcx, esi
cmp al, byte [rbx + rcx]
jne 0x4027a1
mov eax, dword [rsp + 0x144]
inc eax
mov dword [rsp + 0x144], eax
cmp eax, dword [rsp + 0x140]
je 0x402bdd
inc ebp
xor r13d, r13d
jmp 0x4027ab
mov r13d, 1
test edi, edi
je 0x4027dc
inc esi
movsxd rax, esi
mov cl, byte [rbx + rax]
test cl, cl
je 0x402bdd
jmp 0x4026bf
sub dword [rsp + 0x144], ebp
jmp 0x402bdd
mov rax, qword [rsp + 0x60]
mov dword [rax], 2
jmp 0x402bdd
sub dword [rsp + 0x144], ebp
inc dword [rsp + 0x12c]
jmp 0x402bdd
cmp dword [r13 + 0x40], 1
je 0x4033e1
test ebx, ebx
jne 0x40286f
mov eax, dword [rdi]
inc eax
mov dword [rsp + 0x128], eax
mov dword [rsp + 0x12c], r10d
mov dword [rsp + 0x130], 0
mov byte [rsp + 0x134], 0x20
xor edx, edx
mov ebx, 1
mov dword [rsp + 0x138], 0x7fffffff
mov eax, dword [rdi + 0x14]
mov dword [rsp + 0x13c], eax
mov eax, dword [rdi + 0x18]
mov dword [rsp + 0x140], eax
mov eax, dword [rdi + 0x1c]
mov dword [rsp + 0x144], eax
mov eax, dword [rdi + 0x20]
mov dword [rsp + 0x148], eax
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0x150], rax
jmp 0x40297e
cmp dword [rsp + 0x130], 0
jne 0x4028a1
mov eax, dword [rdi + 0x1c]
cmp eax, dword [rsp + 0x144]
jne 0x402922
mov ecx, dword [rdi]
inc ecx
mov dword [rsp + 0x128], ecx
mov dword [rsp + 0x12c], r10d
jmp 0x402924
test edx, edx
jle 0x40293b
mov eax, dword [rdi]
inc eax
mov dword [rsp + 0x128], eax
mov r10d, 1
sub r10d, edx
add r10d, dword [rsp + 0x12c]
mov dword [rsp + 0x12c], r10d
mov dword [rsp + 0x130], 0
mov eax, dword [rdi + 0x14]
sub eax, edx
mov dword [rdi + 0x14], eax
mov dword [rdi + 4], r10d
mov dword [rsp + 0x138], 0x7fffffff
mov dword [rsp + 0x13c], eax
mov eax, dword [rdi + 0x18]
mov dword [rsp + 0x140], eax
mov eax, dword [rdi + 0x1c]
mov dword [rsp + 0x144], eax
mov eax, dword [rdi + 0x20]
mov dword [rsp + 0x148], eax
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0x150], rax
jmp 0x40297c
inc edx
mov rcx, qword [rsp + 0x78]
mov ecx, dword [rcx]
mov dword [rsp + 0x140], ecx
mov dword [rsp + 0x144], eax
jmp 0x40297e
jne 0x40297e
mov eax, dword [rdi + 0x1c]
cmp eax, dword [rsp + 0x144]
jne 0x40295c
mov ecx, dword [rdi]
inc ecx
mov dword [rsp + 0x128], ecx
mov dword [rsp + 0x12c], r10d
mov dword [rsp + 0x130], 0
mov rcx, qword [rsp + 0x78]
mov ecx, dword [rcx]
mov dword [rsp + 0x140], ecx
mov dword [rsp + 0x144], eax
xor edx, edx
mov dword [rsp + 0x74], ebx
mov dword [rsp + 0x84], edx
mov r11, qword [rsp + 0x128]
mov rax, qword [r13 + 0x10]
movsxd rcx, r11d
cmp byte [rax + rcx], 0
jne 0x402a2e
test esi, esi
jle 0x402bb3
mov r9, qword [rsp + 0x140]
mov r13, r9
shr r13, 0x20
mov eax, r9d
sub eax, r13d
movsxd rsi, r10d
mov dl, byte [r8 + rsi]
add rsi, r8
mov ecx, r9d
sub ecx, r13d
xor edi, edi
nop word cs:[rax + rax]
mov rbx, qword [rsp + rdi*8 + 0xa0]
mov r15d, 1
cmp dl, byte [rbx]
jne 0x402a1d
nop word cs:[rax + rax]
mov rbp, r15
cmp ebp, eax
jge 0x402a15
mov r12b, byte [rsi + rbp]
lea r15, [rbp + 1]
cmp r12b, byte [rbx + rbp]
je 0x402a00
cmp ecx, ebp
je 0x402baa
inc rdi
cmp edi, dword [rsp + 0x98]
jl 0x4029e0
jmp 0x402bb3
mov r14, rdi
mov rdx, qword [r13 + 0x28]
lea rdi, [rsp + 0x1e0]
mov rcx, rdi
call sub.KERNEL32_lstrcpyA
mov rdx, qword [r13 + 0x30]
lea rbx, [rsp + 0x160]
mov rcx, rbx
call sub.KERNEL32_lstrcpyA
mov eax, dword [r13 + 0x44]
mov dword [rsp + 0x15c], eax
mov dword [r13 + 0x40], 1
mov rdx, qword [r13 + 0x38]
lea rbp, [rsp + 0xf8]
mov rcx, rbp
mov r8d, 0x30
call fcn.004015e0
mov eax, dword [r13 + 0x1960]
mov esi, dword [r13 + 0x1994]
mov dword [r13 + 0x1964], eax
lea rcx, [rsp + 0x128]
mov rdx, r13
call fcn.004016e0
mov dword [r13 + 0x1994], esi
mov rcx, qword [r13 + 0x38]
mov al, byte [rcx + 0xc]
mov byte [rsp + 0x104], al
mov rdx, rbp
mov r8d, 0x30
call fcn.004015e0
mov dword [r13 + 0x40], 0
mov eax, dword [rsp + 0x15c]
mov dword [r13 + 0x44], eax
mov rcx, qword [r13 + 0x28]
mov rdx, rdi
call sub.KERNEL32_lstrcpyA
mov rcx, qword [r13 + 0x30]
mov rdx, rbx
call sub.KERNEL32_lstrcpyA
mov dword [r13 + 0x1964], 0
mov r12, r13
cmp dword [rsp + 0x130], 0
jne 0x402bdd
mov r15, qword [rsp + 0x140]
mov ebx, dword [rsp + 0x144]
cmp ebx, r15d
jge 0x402bdd
cmp dword [rsp + 0x98], 0
jle 0x402bdd
mov r13, r15
shr r13, 0x20
mov r9d, dword [rsp + 0x140]
mov edi, r15d
sub edi, ebx
mov r8, qword [r12]
mov r10d, dword [r14 + 4]
movsxd rcx, r10d
lea rdx, [r8 + rcx]
mov r11b, byte [r8 + rcx]
sub r15d, ebx
xor esi, esi
mov rbx, qword [rsp + rsi*8 + 0xa0]
mov ecx, 1
cmp r11b, byte [rbx]
jne 0x402b9c
nop dword [rax]
mov rbp, rcx
cmp ebp, edi
jge 0x402b93
mov al, byte [rdx + rbp]
lea rcx, [rbp + 1]
cmp al, byte [rbx + rbp]
je 0x402b80
cmp r15d, ebp
je 0x402686
inc rsi
cmp esi, dword [rsp + 0x98]
jl 0x402b67
jmp 0x402bdd
test rbx, rbx
jne 0x402cc6
mov rax, r11
sar rax, 0x20
cmp byte [r8 + rax], 0
mov r14, qword [rsp + 0x68]
mov r12, qword [rsp + 0x90]
je 0x402bdd
shr r11, 0x20
inc r11d
mov dword [rsp + 0x12c], r11d
mov rdi, r14
mov ecx, dword [rdi + 0x1c]
mov eax, dword [rsp + 0x144]
cmp ecx, eax
mov r13, r12
jge 0x402c14
cmp eax, dword [rsp + 0x140]
jge 0x402df9
mov rax, qword [r13 + 0x10]
movsxd rcx, dword [rsp + 0x128]
cmp byte [rax + rcx], 0
je 0x402df9
movsxd rax, dword [rdi + 4]
mov rdx, qword [r13]
mov rcx, qword [r13 + 0x28]
movsx edx, byte [rdx + rax]
mov r8d, 1
call fcn.00404930
movsxd rax, eax
mov rcx, qword [r13 + 0x28]
cmp byte [rcx + rax], 0
mov esi, dword [rsp + 0x98]
jne 0x402d47
mov rcx, qword [r13 + 0x30]
cmp byte [rcx], 0
je 0x402c78
movsxd rax, dword [rdi + 4]
mov rdx, qword [r13]
movsx edx, byte [rdx + rax]
mov r8d, 1
call fcn.00404930
movsxd rax, eax
mov rcx, qword [r13 + 0x30]
cmp byte [rcx + rax], 0
je 0x402d47
cmp dword [r13 + 0x40], 0
mov ebx, dword [rsp + 0x74]
jne 0x402ce5
cmp qword [r13 + 0x1958], 0
je 0x402ce5
cmp dword [r13 + 0x1994], 1
jne 0x402ce5
mov rax, qword [r13 + 0x1970]
test rax, rax
je 0x402cde
mov ecx, dword [r13 + 0x1990]
mov edx, dword [r13 + 0x1998]
cmp edx, ecx
jbe 0x402cd8
movsxd rdx, dword [rdi + 4]
mov rbp, qword [r13]
mov dl, byte [rbp + rdx]
mov byte [rax + rcx], dl
jmp 0x402cde
mov r14, qword [rsp + 0x68]
mov r12, qword [rsp + 0x90]
jmp 0x40268f
dec edx
mov byte [rax + rdx], 0
inc dword [r13 + 0x1990]
mov r10d, dword [rdi + 4]
inc r10d
mov dword [rdi + 4], r10d
mov r9d, dword [rdi + 0x14]
inc r9d
mov dword [rdi + 0x14], r9d
mov eax, dword [rdi + 0x10]
cmp eax, dword [r13 + 8]
mov edx, dword [rsp + 0x84]
jge 0x402d1d
dec eax
mov rcx, qword [rsp + 0x88]
mov dword [rcx], eax
je 0x402eaa
mov r8, qword [r13]
movsxd rax, r10d
cmp byte [r8 + rax], 0
jne 0x4027ef
mov dword [rsp + 0x12c], r10d
cmp byte [r8 + rax], 0
jne 0x4027ef
jmp 0x402432
mov r9d, dword [rdi + 0x14]
test r9d, r9d
je 0x403396
mov eax, dword [rdi]
inc eax
mov dword [rsp + 0x128], eax
mov r10d, dword [rdi + 4]
jmp 0x402e1d
dec ecx
mov byte [rax + rcx], 0
mov rdx, qword [r13 + 0x1970]
mov eax, dword [r13 + 0x196c]
mov ecx, dword [r13 + 0x1968]
mov ebx, dword [r13 + 0x1960]
movsxd rbp, ebx
mov rdi, qword [r13 + 0x1958]
cmp dword [rdi], ebp
ja 0x402d9a
mov dword [rdi], ebx
mov rbx, qword [rdi + 8]
mov rbp, qword [rbx + rbp*8]
mov dword [rbp + 4], ecx
mov dword [rbp + 8], eax
mov rcx, qword [rbp + 0x10]
call sub.KERNEL32_lstrcpyA
mov dword [r13 + 0x1990], 0
mov qword [r13 + 0x1960], 0
mov qword [r13 + 0x1968], 0xffffffffffffffff
mov rax, qword [r13 + 0x1970]
mov byte [rax], 0
mov dword [r13 + 0x1994], 0
inc dword [r15]
mov rsi, r15
mov edx, dword [rsp + 0x84]
jmp 0x40204a
mov r9d, dword [rdi + 0x14]
test r9d, r9d
je 0x403444
mov eax, dword [rdi]
inc eax
mov dword [rsp + 0x128], eax
mov r10d, dword [rdi + 4]
mov dword [rsp + 0x12c], r10d
movsxd rax, r10d
mov rcx, qword [r13]
cmp byte [rcx + rax], 0
jne 0x402e4c
mov rdx, qword [r13 + 0x10]
movsxd rsi, dword [rsp + 0x128]
mov al, byte [rdx + rsi]
test al, al
jne 0x402e6f
mov eax, dword [rsp + 0x148]
add eax, esi
cmp eax, dword [r13 + 0x18]
jl 0x402e8f
mov rax, qword [rsp + 0x88]
mov eax, dword [rax]
cmp eax, dword [r13 + 8]
jne 0x4032a1
mov rdx, qword [r13 + 0x10]
movsxd rsi, dword [rsp + 0x128]
mov al, byte [rdx + rsi]
test al, al
je 0x402e87
test esi, esi
jle 0x402e87
lea ecx, [rsi - 1]
movsxd rcx, ecx
cmp byte [rdx + rcx], 0x5b
jne 0x403454
test al, al
jne 0x403036
cmp esi, dword [r13 + 0x18]
jge 0x403036
cmp byte [r13 + 0x1950], 0x7c
jne 0x402f11
xor r8b, r8b
inc esi
jmp 0x402f29
mov ebp, edx
mov rax, qword [rsp + 0x128]
mov rcx, qword [r13 + 0x10]
movsxd rdx, eax
cmp byte [rcx + rdx], 0
jne 0x402eda
mov ecx, dword [rsp + 0x148]
add ecx, eax
cmp ecx, dword [r13 + 0x18]
je 0x402eda
cmp byte [rsp + 0x134], 0x23
jne 0x402ef8
mov rcx, rax
sar rcx, 0x20
mov rdx, qword [r13]
cmp byte [rdx + rcx], 0
je 0x402ef8
shr rax, 0x20
inc eax
mov dword [rsp + 0x12c], eax
mov eax, dword [rdi]
inc eax
mov dword [rsp + 0x128], eax
mov dword [rdi + 8], 0
mov edx, ebp
jmp 0x402432
inc esi
movsxd rax, esi
add rdx, rax
cmp byte [rdx], 0
lea rdx, [rdx + 1]
jne 0x402f19
jmp 0x403036
inc esi
movsxd rax, esi
movsx eax, byte [rdx + rax]
cmp eax, 0x3b
ja 0x402f3e
test al, al
jne 0x402f27
jmp 0x403028
cmp al, 0x7a
ja 0x402f50
cmp al, 0x5a
ja 0x402f5a
cmp al, 0x3c
je 0x402f5e
cmp al, 0x3e
je 0x402f7a
jmp 0x402f27
cmp al, 0x7d
je 0x402f7a
cmp al, 0x7b
jne 0x402f27
jmp 0x402f5e
cmp al, 0x5b
jne 0x402f76
mov r15, rdi
cmp eax, 0x3c
je 0x402f7f
mov r14, r13
cmp eax, 0x7b
jne 0x402f84
mov r11b, 0x7d
mov r13, r14
jmp 0x402f8f
cmp al, 0x5d
jne 0x402f27
mov r8b, 1
jmp 0x402f27
mov r11b, 0x3e
jmp 0x402f8f
cmp eax, 0x5b
mov r13, r14
jne 0x402f8f
mov r11b, 0x5d
mov edi, 1
jmp 0x402f9a
add edi, ecx
mov esi, ebp
movsxd rbp, esi
mov eax, esi
mov bl, byte [rdx + rbp + 1]
inc rbp
cmp bl, r11b
jne 0x402fb0
cmp edi, 1
je 0x40301c
lea esi, [rax + 1]
cmp bl, 0x3b
ja 0x402fbe
test bl, bl
jne 0x402f9d
jmp 0x403033
xor ecx, ecx
cmp bl, 0x7a
ja 0x402fd6
cmp bl, 0x5a
ja 0x402fe2
cmp bl, 0x3c
je 0x403003
cmp bl, 0x3e
jne 0x402f9d
jmp 0x402fec
cmp bl, 0x7d
je 0x402fec
cmp bl, 0x7b
jne 0x402f9d
jmp 0x403003
cmp bl, 0x5b
je 0x403003
cmp bl, 0x5d
jne 0x402f9d
movsxd rsi, eax
add ecx, 0x80000000
lea eax, [rsi - 1]
cmp byte [rdx + rsi], 0x60
je 0x402fec
sar ecx, 0x1f
jmp 0x402f96
lea eax, [rsi + rcx - 1]
movsxd rax, eax
dec ecx
cmp byte [rdx + rax], 0x60
je 0x403003
neg ecx
and ecx, 1
jmp 0x402f96
mov esi, ebp
mov rdi, r15
inc esi
jmp 0x402f29
test r8b, 1
je 0x403036
jmp 0x403454
mov rdi, r15
mov eax, dword [rdi]
inc eax
mov dword [rsp + 0x128], eax
mov dword [rsp + 0x12c], r10d
mov dword [rsp + 0x130], 0
mov byte [rsp + 0x134], 0x20
mov dword [rsp + 0x138], 0x7fffffff
mov dword [rsp + 0x13c], r9d
mov eax, dword [rdi + 0x18]
mov dword [rsp + 0x140], eax
mov eax, dword [rdi + 0x1c]
mov dword [rsp + 0x144], eax
mov eax, dword [rdi + 0x20]
mov dword [rsp + 0x148], eax
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0x150], rax
mov rdx, qword [r13 + 0x28]
mov r14, rdi
lea rdi, [rsp + 0x1e0]
mov rcx, rdi
call sub.KERNEL32_lstrcpyA
mov rdx, qword [r13 + 0x30]
lea rbx, [rsp + 0x160]
mov rcx, rbx
call sub.KERNEL32_lstrcpyA
mov eax, dword [r13 + 0x44]
mov dword [rsp + 0x15c], eax
mov dword [r13 + 0x40], 1
mov rdx, qword [r13 + 0x38]
lea rbp, [rsp + 0xf8]
mov rcx, rbp
mov r8d, 0x30
call fcn.004015e0
mov eax, dword [r13 + 0x1960]
mov esi, dword [r13 + 0x1994]
mov dword [r13 + 0x1964], eax
lea rcx, [rsp + 0x128]
mov rdx, r13
call fcn.004016e0
mov dword [r13 + 0x1994], esi
mov rcx, qword [r13 + 0x38]
mov al, byte [rcx + 0xc]
mov byte [rsp + 0x104], al
mov rdx, rbp
mov r8d, 0x30
call fcn.004015e0
mov dword [r13 + 0x40], 0
mov eax, dword [rsp + 0x15c]
mov dword [r13 + 0x44], eax
mov rcx, qword [r13 + 0x28]
mov rdx, rdi
call sub.KERNEL32_lstrcpyA
mov rcx, qword [r13 + 0x30]
mov rdx, rbx
call sub.KERNEL32_lstrcpyA
mov dword [r13 + 0x1964], 0
cmp dword [rsp + 0x130], 0
jne 0x403463
mov rcx, qword [r13 + 0x10]
movsxd rax, dword [r14]
cmp byte [rcx + rax], 0
mov rdi, r14
je 0x40328a
lea rdx, [rcx + rax + 1]
inc eax
mov dword [rsp + 0x15c], eax
mov bl, byte [rdx]
test bl, bl
je 0x40328a
inc eax
inc rdx
cmp bl, 0x21
jne 0x403198
cmp dword [r13 + 0x1994], 1
jne 0x40328a
mov rax, qword [rsp + 0x58]
cmp dword [rax], 0
je 0x40328a
mov rsi, rdi
cmp qword [r13 + 0x1958], 0
je 0x40327c
mov rax, qword [r13 + 0x1970]
test rax, rax
je 0x40320a
mov edx, dword [r13 + 0x1990]
mov ecx, dword [r13 + 0x1998]
cmp ecx, edx
jbe 0x403204
mov byte [rax + rdx], 0
jmp 0x40320a
dec ecx
mov byte [rax + rcx], 0
mov rdx, qword [r13 + 0x1970]
mov eax, dword [r13 + 0x196c]
mov ecx, dword [r13 + 0x1968]
mov ebx, dword [r13 + 0x1960]
movsxd rbp, ebx
mov rdi, qword [r13 + 0x1958]
cmp dword [rdi], ebp
ja 0x403236
mov dword [rdi], ebx
mov rbx, qword [rdi + 8]
mov rbp, qword [rbx + rbp*8]
mov dword [rbp + 4], ecx
mov dword [rbp + 8], eax
mov rcx, qword [rbp + 0x10]
call sub.KERNEL32_lstrcpyA
mov dword [r13 + 0x1990], 0
mov qword [r13 + 0x1960], 0
mov qword [r13 + 0x1968], 0xffffffffffffffff
mov rax, qword [r13 + 0x1970]
mov byte [rax], 0
mov rcx, qword [r13 + 0x10]
mov dword [r13 + 0x1994], 0
mov rdi, rsi
call sub.KERNEL32_lstrlenA
mov dword [rsp + 0x128], eax
mov dword [rsp + 0x84], 0
cmp dword [r13 + 0x40], 0
jne 0x4032b5
cmp dword [rdi + 0x14], 0
jle 0x4032b5
mov rax, qword [rsp + 0x78]
inc dword [rax]
mov qword [rdi + 0x10], 0x7fffffff
inc dword [rdi + 0x1c]
movsxd rax, dword [rsp + 0x128]
mov dword [rdi], eax
mov rcx, qword [r13 + 0x10]
movsx edx, byte [rcx + rax]
lea rcx, [0x0042409e]
mov r8d, 1
call fcn.00404930
cmp eax, 0x12
je 0x403300
mov eax, dword [rdi]
test eax, eax
jle 0x403300
mov rcx, qword [r13 + 0x10]
dec eax
movsxd rdx, eax
cmp byte [rcx + rdx], 0x60
jne 0x403300
mov dword [rdi], eax
movsxd rax, dword [rdi + 4]
mov rcx, qword [r13]
cmp byte [rcx + rax], 0
mov edx, dword [rsp + 0x84]
je 0x40331f
mov eax, dword [rsp + 0x12c]
mov dword [rdi + 4], eax
mov rsi, rdi
jmp 0x40204a
cmp dword [r13 + 0x44], 1
jne 0x401760
mov rsi, qword [rsp + 0x60]
mov dword [rsi], 0
jmp 0x4033cc
add rsi, 8
mov dword [rsi], 0
jmp 0x4033cc
lea eax, [rdx + rax - 1]
movsxd rax, eax
mov rcx, qword [r13]
mov byte [rcx + rax], 0
mov eax, dword [rbx + 4]
mov ecx, dword [rsp + 0x15c]
lea eax, [rcx + rax - 1]
mov dword [rbx + 4], eax
mov dword [rbx + 8], 4
jmp 0x4033cc
mov rsi, qword [rsp + 0x60]
mov dword [rsi], 0
jmp 0x4033cc
cmp dword [rsi + 0x14], 0
jle 0x403396
inc dword [rsi + 0x1c]
mov rax, qword [rsp + 0x60]
mov dword [rax], 0x68
jmp 0x4033cc
mov rax, qword [rsp + 0x60]
mov dword [rax], 3
jmp 0x4033cc
mov rax, qword [rsp + 0x60]
mov dword [rax], 0x66
jmp 0x4033cc
mov rdx, qword [r13 + 0x38]
mov r8d, 0x30
call fcn.004015e0
nop
add rsp, 0x268
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x60]
mov dword [rax], 0
jmp 0x4033cc
mov rax, qword [rsp + 0x60]
mov dword [rax], 5
jmp 0x4033cc
mov rax, qword [r13]
movsxd rcx, ecx
mov byte [rax + rcx], 0
mov rax, qword [rsp + 0x60]
mov dword [rax], 4
jmp 0x4033cc
mov rax, qword [rsp + 0x60]
mov dword [rax], 2
jmp 0x4033cc
test al, al
setne al
movzx eax, al
or eax, 0x66
mov rcx, qword [rsp + 0x60]
mov dword [rcx], eax
jmp 0x4033cc
mov eax, dword [r12]
sub dword [rsi + 4], eax
mov dword [rsi + 8], 0
jmp 0x4033cc
mov rax, qword [rsp + 0x60]
mov dword [rax], 0x67
jmp 0x4033cc
mov dword [rdi + 8], 0x66
inc dword [rdi + 0x1c]
jmp 0x4033cc
mov dword [r14 + 8], 0x66
inc dword [r14 + 0x1c]
jmp 0x4033cc