Function at 0x100477d00
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov qword [rsp + 0xd0], rcx
mov r12, r8
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0xe8], r9
cmp r9, r8
jbe 0x100478dd2
mov ebx, dword [rsp + 0xf0]
mov eax, dword [rsp + 0xf0]
mov rsi, rcx
and ebx, 0x10
and eax, 0x20
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0x3c], eax
lea rax, [r12 + 2]
movzx r13d, word [r12]
mov qword [rsp + 0x30], rax
test ebx, ebx
je 0x100477d80
mov ecx, r13d
call sub.msys_2.0.dll_iswupper
test eax, eax
je 0x100477d80
mov ecx, r13d
call sub.msys_2.0.dll_towlower
mov r13d, eax
xor r14d, r14d
cmp qword [rsp + 0xd8], rsi
jbe 0x100477d91
movzx r14d, word [rsi]
mov ebp, dword [rsp + 0x3c]
test ebp, ebp
je 0x100477da6
cmp word [r12 + 2], 0x28
je 0x100478480
cmp r13d, 0x5b
je 0x1004780d0
ja 0x100477e58
cmp r13d, 0x2a
je 0x100477ee0
cmp r13d, 0x3f
jne 0x1004780a0
test r14d, r14d
je 0x100477e38
movzx eax, byte [rsp + 0xf0]
and eax, 1
cmp r14d, 0x2f
jne 0x100477de4
test al, al
jne 0x100477e38
test byte [rsp + 0xf0], 4
je 0x100477e00
cmp r14d, 0x2e
je 0x1004788c0
nop dword [rax + rax]
mov r12, qword [rsp + 0x30]
add rsi, 2
cmp qword [rsp + 0xe8], r12
ja 0x100477d56
cmp qword [rsp + 0xd8], rsi
je 0x100478020
test byte [rsp + 0xf0], 8
jne 0x100478c97
nop dword [rax + rax]
mov eax, 1
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp r13d, 0x5c
jne 0x1004780a0
mov rax, qword [rsp + 0x30]
cmp rax, qword [rsp + 0xe8]
je 0x100477e38
test byte [rsp + 0xf0], 2
jne 0x100478540
movzx r13d, word [r12 + 2]
lea rax, [r12 + 4]
cmp qword [rsp + 0xe8], rax
jb 0x100477e38
mov r12, rax
test ebx, ebx
je 0x100477ec9
mov ecx, r13d
call sub.msys_2.0.dll_iswupper
test eax, eax
je 0x100477eb2
mov ecx, r13d
call sub.msys_2.0.dll_towlower
mov r13d, eax
mov ecx, r14d
call sub.msys_2.0.dll_iswupper
test eax, eax
je 0x100477ec9
mov ecx, r14d
call sub.msys_2.0.dll_towlower
mov r14d, eax
cmp r14d, r13d
je 0x100477e05
jmp 0x100477e38
mov edi, r14d
test byte [rsp + 0xf0], 4
je 0x100477ef7
cmp r14d, 0x2e
je 0x100478890
mov rax, qword [rsp + 0x30]
cmp rax, qword [rsp + 0xe8]
je 0x100478020
movzx ebx, word [r12 + 2]
lea r13, [r12 + 4]
cmp ebx, 0x2a
je 0x100477f23
cmp ebx, 0x3f
jne 0x100478cc6
mov r15d, dword [rsp + 0xf0]
and r15d, 1
mov r12d, r15d
cmp edi, 0x2f
jne 0x100477f40
test r15b, r15b
jne 0x100477e38
mov dword [rsp + 0x30], r15d
mov r14d, dword [rsp + 0x3c]
mov r15, qword [rsp + 0xd8]
mov rbp, qword [rsp + 0xe8]
jmp 0x100477f9f
cmp ebx, 0x3f
je 0x100477fc8
cmp ebx, 0x2a
je 0x100478030
cmp rbp, r13
je 0x100478b47
movzx ebx, word [r13]
lea rax, [r13 + 2]
cmp ebx, 0x3f
je 0x100477f8e
cmp ebx, 0x2a
jne 0x1004789e0
cmp edi, 0x2f
jne 0x100477f9c
test r12b, r12b
jne 0x100477e38
mov r13, rax
test r14d, r14d
jne 0x100477f60
cmp ebx, 0x3f
jne 0x100477f6e
test edi, edi
je 0x100477e38
lea rax, [rsi + 2]
xor edi, edi
cmp r15, rax
jbe 0x100477fc0
movzx edi, word [rsi + 2]
mov rsi, rax
jmp 0x100477f6e
cmp word [r13], 0x28
jne 0x100477fa9
mov eax, dword [rsp + 0xf0]
mov r9, r13
mov r8, r15
mov rdx, rsi
mov qword [rsp + 0x20], rbp
mov ecx, 0x3f
mov dword [rsp + 0x28], eax
call fcn.1004777b0
test eax, eax
je 0x100478020
add r13, 2
cmp rbp, r13
je 0x100478020
mov rcx, r13
xor r8d, r8d
mov rdx, rbp
call fcn.100475e30
mov r13, rax
test rax, rax
jne 0x100477f6e
nop word [rax + rax]
xor eax, eax
jmp 0x100477e3d
cmp word [r13], 0x28
jne 0x100477f6e
cmp r15, rsi
jbe 0x100478bac
mov dword [rsp + 0x40], ebx
mov rbx, rsi
mov dword [rsp + 0x44], edi
mov rdi, r13
mov r13d, r12d
mov r12, r15
mov r15, rsi
mov esi, dword [rsp + 0xf0]
jmp 0x100478075
add rbx, 2
cmp r12, rbx
jbe 0x100478b98
mov dword [rsp + 0x28], esi
mov r9, rdi
mov r8, r12
mov rdx, rbx
mov qword [rsp + 0x20], rbp
mov ecx, 0x2a
call fcn.1004777b0
test eax, eax
jne 0x100478068
jmp 0x100478020
test ebx, ebx
je 0x1004780bb
mov ecx, r14d
call sub.msys_2.0.dll_iswupper
test eax, eax
je 0x1004780bb
mov ecx, r14d
call sub.msys_2.0.dll_towlower
mov r14d, eax
cmp r13d, r14d
je 0x100477e00
jmp 0x100477e38
test r14d, r14d
je 0x100477e38
cmp qword [rsp + 0xd8], rsi
je 0x100477e38
test byte [rsp + 0xf0], 4
je 0x1004780fb
cmp r14d, 0x2e
je 0x100478860
test ebx, ebx
je 0x100478116
mov ecx, r14d
call sub.msys_2.0.dll_iswupper
test eax, eax
je 0x100478116
mov ecx, r14d
call sub.msys_2.0.dll_towlower
mov r14d, eax
movzx ebp, word [r12 + 2]
mov rcx, qword [rsp + 0x30]
cmp bp, 0x21
sete dl
cmp bp, 0x5e
sete al
or dl, al
mov byte [rsp + 0x57], dl
jne 0x100478568
mov eax, dword [rsp + 0xf0]
mov qword [rsp + 0x48], rsi
lea r12, [rcx + 2]
shr eax, 1
xor eax, 1
and eax, 1
mov byte [rsp + 0x40], al
cmp bp, 0x5b
je 0x100478340
movzx edi, byte [rsp + 0x40]
cmp bp, 0x5c
sete al
mov r13d, edi
and al, dil
jne 0x1004784f0
test ebx, ebx
je 0x100478468
mov r15d, ebp
xor edi, edi
movzx ecx, r15w
mov rsi, r12
mov dword [rsp + 0x44], ecx
call sub.msys_2.0.dll_iswupper
test eax, eax
je 0x1004781a9
mov ecx, dword [rsp + 0x44]
call sub.msys_2.0.dll_towlower
mov rsi, r12
mov r15d, eax
test bp, bp
je 0x100478680
movzx ecx, word [rsi]
lea r12, [rsi + 2]
mov dword [rsp + 0x44], ecx
mov ebp, ecx
call sub.msys_2.0.dll_iswupper
mov ecx, dword [rsp + 0x44]
test eax, eax
je 0x1004781d3
call sub.msys_2.0.dll_towlower
mov ebp, eax
test bp, bp
je 0x100478680
cmp bp, 0x2f
jne 0x1004781f0
test byte [rsp + 0xf0], 1
jne 0x100477e38
cmp bp, 0x2d
jne 0x1004782d0
movzx r8d, word [rsi + 2]
cmp r8w, 0x5d
je 0x1004782d0
lea r12, [rsi + 4]
cmp r8w, 0x5c
jne 0x10047821e
test r13b, r13b
jne 0x100478850
test r8w, r8w
je 0x100477e38
movzx ebp, word [r12]
movzx r13d, r8w
cmp r8w, 0x5b
je 0x100478698
test ebx, ebx
je 0x10047825a
mov ecx, r13d
mov dword [rsp + 0x44], r8d
call sub.msys_2.0.dll_iswupper
mov r8d, dword [rsp + 0x44]
test eax, eax
jne 0x1004785f0
movzx esi, r15w
add r12, 2
cmp esi, r13d
je 0x1004782d7
test edi, edi
jne 0x100478279
mov ecx, dword [sym.bash.exe_glob_asciirange]
test ecx, ecx
jne 0x1004785c0
lea rdx, [0x1004d8720]
lea rcx, [0x1004d8724]
mov word [0x1004d8720], r8w
mov dword [rsp + 0x44], r8d
mov word [0x1004d8724], r15w
call sub.msys_2.0.dll_wcscoll
mov r8d, dword [rsp + 0x44]
test eax, eax
jle 0x1004785e0
cmp bp, 0x5d
jne 0x100478580
cmp byte [rsp + 0x57], 0
mov rsi, qword [rsp + 0x48]
jne 0x100477e05
jmp 0x100477e38
movzx r13d, r15w
mov r8d, r15d
cmp r14d, r13d
je 0x100478390
test edi, edi
jne 0x1004782ff
mov edx, dword [sym.bash.exe_glob_asciirange]
test edx, edx
je 0x1004782ff
mov eax, r14d
or eax, r13d
cmp eax, 0xff
jbe 0x100478608
lea rdx, [0x1004d8720]
lea rcx, [0x1004d8724]
mov dword [rsp + 0x44], r8d
mov word [0x1004d8724], r14w
mov word [0x1004d8720], r15w
call sub.msys_2.0.dll_wcscoll
mov r8d, dword [rsp + 0x44]
test eax, eax
jns 0x100478390
cmp bp, 0x5d
je 0x1004782b8
cmp bp, 0x5b
jne 0x100478161
movzx r8d, word [r12]
cmp r8w, 0x3d
je 0x100478618
cmp r8w, 0x3a
je 0x100478710
mov r15d, 0x5b
xor edi, edi
cmp r8w, 0x2e
je 0x1004786e0
movzx r13d, byte [rsp + 0x40]
mov rsi, r12
test ebx, ebx
jne 0x100478186
movzx ebp, word [rsi]
lea r12, [rsi + 2]
jmp 0x1004781d3
movzx edx, r8w
cmp r14d, edx
je 0x1004783f0
test edi, edi
jne 0x1004783c0
mov eax, dword [sym.bash.exe_glob_asciirange]
test eax, eax
je 0x1004783c0
cmp r14d, 0xff
ja 0x1004783c0
cmp edx, 0xff
ja 0x1004783c0
mov eax, r14d
sub eax, edx
jmp 0x1004783e3
lea rdx, [0x1004d8720]
lea rcx, [0x1004d8724]
mov word [0x1004d8724], r14w
mov word [0x1004d8720], r8w
call sub.msys_2.0.dll_wcscoll
test eax, eax
jg 0x100478330
nop dword [rax + rax]
mov rsi, qword [rsp + 0x48]
lea rdi, [r12 - 2]
cmp word [r12 - 2], 0
je 0x100478452
mov r8d, dword [rsp + 0xf0]
mov ecx, 1
shr r8d, 1
xor r8d, 1
and r8d, 1
nop dword [rax + rax]
movzx eax, word [rdi]
mov rdx, rdi
lea rdi, [rdx + 2]
cmp ax, 0x5b
je 0x100478cd0
cmp ax, 0x5d
je 0x100478d00
test r8b, r8b
je 0x10047844d
cmp ax, 0x5c
je 0x100478d71
test ax, ax
jne 0x100478420
cmp r14d, 0x5b
jne 0x100477e38
jmp 0x100477e00
test bp, bp
je 0x100478680
xor edi, edi
mov rsi, r12
mov r15d, ebp
jmp 0x10047837f
lea eax, [r13 - 0x21]
cmp eax, 0x1f
ja 0x100477da6
mov edx, 0xc0000601
bt rdx, rax
jae 0x100477db6
mov eax, dword [rsp + 0xf0]
mov r9, qword [rsp + 0x30]
mov rdx, rsi
mov ecx, r13d
mov r8, qword [rsp + 0xd8]
and eax, 0xfffffffb
cmp qword [rsp + 0xd0], rsi
cmove eax, dword [rsp + 0xf0]
mov dword [rsp + 0xf0], eax
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x20], rax
call fcn.1004777b0
jmp 0x100477e3d
movzx r15d, word [r12]
test r15w, r15w
je 0x100477e38
lea rsi, [r12 + 2]
test ebx, ebx
je 0x1004785b0
movzx ecx, r15w
mov byte [rsp + 0x58], al
mov dword [rsp + 0x44], ecx
call sub.msys_2.0.dll_iswupper
mov ecx, dword [rsp + 0x44]
movzx r13d, byte [rsp + 0x58]
test eax, eax
mov edi, eax
je 0x1004781b2
mov r12, rsi
xor edi, edi
jmp 0x10047819e
mov r12, qword [rsp + 0x30]
test ebx, ebx
je 0x100477ec9
mov ecx, r14d
call sub.msys_2.0.dll_iswupper
test eax, eax
je 0x100477ec9
jmp 0x100477ebe
movzx ebp, word [r12 + 4]
lea rcx, [r12 + 4]
jmp 0x10047813b
test ebx, ebx
je 0x100478157
movzx r13d, bp
mov ecx, r13d
call sub.msys_2.0.dll_iswupper
test eax, eax
je 0x100478157
mov ecx, r13d
call sub.msys_2.0.dll_towlower
mov ebp, eax
jmp 0x100478157
xor edi, edi
mov r13d, eax
jmp 0x10047837f
mov eax, r8d
or eax, r15d
cmp ax, 0xff
ja 0x100478279
mov eax, esi
sub eax, r13d
test eax, eax
jg 0x1004782ae
nop dword [rax]
mov r13d, esi
jmp 0x1004782d7
mov ecx, r13d
call sub.msys_2.0.dll_towlower
mov r8d, eax
movzx r13d, ax
jmp 0x10047825a
mov eax, r14d
sub eax, r13d
jmp 0x10047832c
xor edi, edi
cmp word [r12 + 4], 0x3d
mov r15d, 0x5b
jne 0x10047836e
cmp word [r12 + 6], 0x5d
jne 0x10047836e
movzx r13d, word [r12 + 2]
test ebx, ebx
je 0x10047865b
mov ecx, r13d
call sub.msys_2.0.dll_iswupper
test eax, eax
je 0x10047865b
mov ecx, r13d
call sub.msys_2.0.dll_towlower
mov r13d, eax
mov dword [rsp + 0x6c], r13d
movzx ebp, word [r12 + 8]
lea rax, [r12 + 0xa]
cmp r13d, r14d
je 0x100478e34
test bp, bp
jne 0x100478cb6
nop dword [rax]
mov rsi, qword [rsp + 0x48]
cmp r14d, 0x5b
jne 0x100477e38
jmp 0x100477e00
mov r13d, 0x5b
cmp bp, 0x2e
jne 0x10047823c
mov rcx, r12
lea rdx, [rsp + 0x6c]
call fcn.100475b60
mov r13d, dword [rsp + 0x6c]
mov r12, rax
cmp r13d, 0xffffffff
je 0x100478dbd
mov r8d, r13d
movzx ebp, word [rax]
movzx r13d, r13w
mov edi, 1
jmp 0x10047823c
lea rdx, [rsp + 0x6c]
mov rcx, r12
lea r15d, [r14 + 1]
mov edi, 1
call fcn.100475b60
mov r12, rax
mov eax, dword [rsp + 0x6c]
cmp eax, 0xffffffff
mov edx, eax
cmovne r15d, edx
jmp 0x10047836e
movzx eax, word [r12 + 2]
mov dword [rsp + 0x6c], 0
lea r13, [r12 + 2]
test ax, ax
je 0x100478810
mov rsi, r13
jmp 0x100478745
add rsi, 2
test ax, ax
je 0x100478810
mov edx, eax
movzx eax, word [rsi + 2]
cmp dx, 0x3a
jne 0x100478738
cmp ax, 0x5d
jne 0x100478738
mov rdi, rsi
sub rdi, r12
mov rcx, rdi
call fcn.1004d2f30
mov r15, rax
test rax, rax
je 0x100478e46
mov rcx, r15
lea r8, [rdi - 2]
mov rdx, r13
call sub.msys_2.0.dll_memmove
xor r9d, r9d
mov qword [rsp + 0x70], r15
lea rcx, [0x1004f7700]
mov word [r15 + rdi - 2], r9w
call sub.msys_2.0.dll_wctype
test eax, eax
jne 0x1004788f0
mov rcx, qword [rsp + 0x70]
lea rdx, str.ascii
call sub.msys_2.0.dll_wcscmp
test eax, eax
jne 0x1004788f0
mov ecx, r14d
xor ebp, ebp
call sub.msys_2.0.dll_wctob
cmp eax, 0x7f
setle bpl
cmp eax, 0xffffffff
je 0x100478e0d
mov rcx, r15
mov dword [rsp + 0x6c], ebp
lea rdi, [rsi + 4]
lea r12, [rsi + 6]
call fcn.1004d2c80
test ebp, ebp
jne 0x100478e03
movzx r8d, word [rdi]
test r8w, r8w
je 0x100478680
cmp r8w, 0x5d
je 0x1004782b8
mov r13, r12
nop dword [rax]
test ebx, ebx
je 0x1004789d0
movzx r12d, r8w
mov dword [rsp + 0x44], r8d
mov ecx, r12d
call sub.msys_2.0.dll_iswupper
mov r8d, dword [rsp + 0x44]
test eax, eax
je 0x1004789d0
mov ecx, r12d
mov r12, r13
call sub.msys_2.0.dll_towlower
mov ebp, eax
jmp 0x100478157
movzx r8d, word [rsi + 4]
lea r12, [rsi + 6]
jmp 0x10047821e
cmp qword [rsp + 0xd0], rsi
je 0x100477e38
test byte [rsp + 0xf0], 1
je 0x1004780fb
cmp word [rsi - 2], 0x2f
jne 0x1004780fb
jmp 0x100477e38
cmp qword [rsp + 0xd0], rsi
je 0x100477e38
test byte [rsp + 0xf0], 1
je 0x100477ef7
cmp word [rsi - 2], 0x2f
jne 0x100477ef7
jmp 0x100477e38
cmp qword [rsp + 0xd0], rsi
je 0x100477e38
test al, al
je 0x100477e00
cmp word [rsi - 2], 0x2f
jne 0x100477e00
jmp 0x100477e38
mov rcx, qword [rsp + 0x70]
lea rdx, [0x1004f776c]
call sub.msys_2.0.dll_wcscmp
mov dword [rsp + 0x44], eax
test eax, eax
je 0x100478ca5
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x78], 0
lea rax, [rsp + 0x78]
mov qword [rsp + 0x58], rax
call sub.msys_2.0.dll_wcslen
mov rbp, rax
call sub.msys_2.0.dll___locale_mb_cur_max
movsxd rcx, eax
imul rcx, rbp
add rcx, 1
call fcn.1004d2f30
mov rdi, rax
test rax, rax
je 0x100478da2
mov rcx, qword [rsp + 0x70]
call sub.msys_2.0.dll_wcslen
mov rbp, rax
call sub.msys_2.0.dll___locale_mb_cur_max
mov r9, qword [rsp + 0x58]
mov rcx, rdi
lea rdx, [rsp + 0x70]
cdqe
imul rax, rbp
lea r8, [rax + 1]
call sub.msys_2.0.dll_wcsrtombs
mov rcx, rdi
cmp rax, 0xfffffffffffffffd
ja 0x100478e2a
call sub.msys_2.0.dll_wctype
mov rcx, rdi
mov ebp, eax
call fcn.1004d2c80
test ebp, ebp
je 0x100478da2
mov r8d, dword [rsp + 0x44]
mov edx, ebp
mov ecx, r14d
test r8d, r8d
jne 0x100478d92
call sub.msys_2.0.dll_iswctype
cmp r14d, 0x5f
sete bpl
test eax, eax
setne al
or ebp, eax
movzx ebp, bpl
jmp 0x1004787d5
mov ebp, r8d
mov r12, r13
jmp 0x100478157
mov r14, rax
test ebx, ebx
je 0x100478ddf
mov edi, dword [rsp + 0x3c]
test edi, edi
je 0x100478a01
cmp qword [rsp + 0xd8], rsi
je 0x100478d15
mov edx, dword [rsp + 0xf0]
and edx, 1
cmp ebx, 0x2f
je 0x100478bd7
mov r8, qword [rsp + 0xd8]
mov eax, 0x2f
mov rcx, rsi
sub r8, rsi
test edx, edx
cmovne edx, eax
sar r8, 1
call sub.msys_2.0.dll_wmemchr
mov r13, rax
test rax, rax
cmove r13, qword [rsp + 0xd8]
test byte [rsp + 0xf0], 2
jne 0x100478a56
cmp ebx, 0x5c
je 0x100478d89
mov r12d, ebx
mov r11d, dword [rsp + 0x50]
test r11d, r11d
je 0x100478a73
mov ecx, r12d
call sub.msys_2.0.dll_iswupper
test eax, eax
jne 0x100478c55
lea rbp, [r14 - 2]
cmp r13, rsi
jbe 0x100477e38
mov eax, dword [rsp + 0xf0]
mov dword [rsp + 0x40], r12d
lea rdi, [0x1004f7754]
mov r12, rsi
mov r15d, dword [rsp + 0x3c]
mov rsi, qword [rsp + 0xe8]
and eax, 0xfffffffb
mov dword [rsp + 0x30], eax
jmp 0x100478b19
cmp ebx, 0x5b
je 0x100478b40
mov r10d, dword [rsp + 0x50]
movzx ecx, word [r12]
test r10d, r10d
je 0x100478ae0
mov dword [rsp + 0x3c], ecx
call sub.msys_2.0.dll_iswupper
mov ecx, dword [rsp + 0x3c]
test eax, eax
je 0x100478ae0
call sub.msys_2.0.dll_towlower
mov ecx, eax
cmp dword [rsp + 0x40], ecx
jne 0x100478b0c
mov eax, dword [rsp + 0x30]
mov r9, rsi
mov r8, rbp
mov rcx, r12
mov rdx, qword [rsp + 0xd8]
mov dword [rsp + 0x20], eax
call fcn.100477d00
test eax, eax
je 0x100478020
add r12, 2
cmp r12, r13
jae 0x100477e38
test r15d, r15d
je 0x100478ab0
cmp word [r14], 0x28
je 0x100478b40
movzx edx, word [r14 - 2]
mov rcx, rdi
call sub.msys_2.0.dll_wcschr
cmp ebx, 0x5b
je 0x100478b40
test rax, rax
je 0x100478ab9
test r12, r12
jne 0x100478ae6
jmp 0x100478b0c
mov r15d, dword [rsp + 0x30]
test ebx, ebx
jne 0x100478020
test r15d, r15d
je 0x100478020
test byte [rsp + 0xf0], 8
jne 0x100478020
mov r8, qword [rsp + 0xd8]
mov edx, 0x2f
mov rcx, rsi
sub r8, rsi
sar r8, 1
call sub.msys_2.0.dll_wmemchr
test rax, rax
setne al
movzx eax, al
jmp 0x100477e3d
mov rsi, r15
mov ebx, dword [rsp + 0x40]
mov r15, r12
mov r12d, r13d
mov r13, rdi
mov edi, dword [rsp + 0x44]
lea rcx, [r13 + 2]
cmp rbp, rcx
je 0x100478020
xor r8d, r8d
mov rdx, rbp
call fcn.100475e30
mov r13, rax
test rax, rax
jne 0x100477f6e
xor eax, eax
jmp 0x100477e3d
test edx, edx
je 0x100478c65
mov rax, qword [rsp + 0xd8]
cmp qword [rsp + 0xd8], rsi
ja 0x100478c0d
jmp 0x100477e38
add rsi, 2
cmp rax, rsi
jbe 0x100477e38
cmp word [rsi], 0x2f
jne 0x100478c00
cmp qword [rsp + 0xd8], rsi
jbe 0x100477e38
mov eax, dword [rsp + 0xf0]
mov r9, qword [rsp + 0xe8]
lea rcx, [rsi + 2]
mov r8, r14
mov rdx, qword [rsp + 0xd8]
mov dword [rsp + 0x20], eax
call fcn.100477d00
test eax, eax
setne al
movzx eax, al
jmp 0x100477e3d
mov ecx, r12d
call sub.msys_2.0.dll_towlower
mov r12d, eax
jmp 0x100478a73
mov r8, qword [rsp + 0xd8]
xor edx, edx
mov rcx, rsi
mov r12d, 0x2f
sub r8, rsi
sar r8, 1
call sub.msys_2.0.dll_wmemchr
mov r13, rax
test rax, rax
cmove r13, qword [rsp + 0xd8]
jmp 0x100478a59
xor eax, eax
cmp word [rsi], 0x2f
setne al
jmp 0x100477e3d
lea rcx, [0x1004f7748]
mov qword [rsp + 0x70], rcx
jmp 0x100478912
mov r12, rax
test ebx, ebx
je 0x100478157
jmp 0x100478588
mov r14, r13
jmp 0x1004789e3
movzx eax, word [rdx + 2]
cmp ax, 0x3d
ja 0x100478420
movabs rdx, 0xdbffbfffffffffff
bt rdx, rax
jb 0x100478420
add ecx, 1
mov rdx, rdi
jmp 0x100478426
sub ecx, 1
je 0x100478df0
movzx eax, word [rdx + 2]
mov rdx, rdi
jmp 0x100478426
cmp ebx, 0x21
jne 0x100478a01
mov edx, dword [rsp + 0xf0]
and edx, 1
cmp word [r14], 0x28
jne 0x100478a14
mov eax, dword [rsp + 0xf0]
lea r9, [r14 - 2]
mov rdx, rsi
mov ecx, 0x21
mov r8, qword [rsp + 0xd8]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x20], rax
call fcn.1004777b0
test eax, eax
sete al
movzx eax, al
jmp 0x100477e3d
cmp word [rdx + 2], 0
je 0x100477e38
movzx eax, word [rdx + 4]
add rdx, 4
jmp 0x100478426
movzx r12d, word [r14]
jmp 0x100478a59
call sub.msys_2.0.dll_iswctype
mov ebp, eax
cmp eax, 0xffffffff
jne 0x1004787d5
mov rcx, r15
mov dword [rsp + 0x6c], 0
mov rdi, r12
mov r12, r13
call fcn.1004d2c80
jmp 0x1004787f1
lea r8d, [r14 - 1]
movzx ebp, word [rax]
mov edi, 1
movzx r13d, r8w
jmp 0x10047823c
mov rsi, qword [rsp + 0xd0]
jmp 0x100477e17
mov r15d, dword [rsp + 0xf0]
and r15d, 1
jmp 0x100478b54
cmp byte [rsp + 0x57], 0
jne 0x100477e38
mov r12, rdi
jmp 0x100477e05
mov rsi, qword [rsp + 0x48]
jmp 0x1004783fa
mov rcx, r15
mov dword [rsp + 0x6c], 0
lea rdi, [rsi + 4]
lea r12, [rsi + 6]
call fcn.1004d2c80
jmp 0x1004787f1
call fcn.1004d2c80
jmp 0x100478da2
lea rdi, [r12 + 8]
mov rsi, qword [rsp + 0x48]
mov r12, rax
jmp 0x1004783fa
lea rdi, [rsi + 4]
lea r12, [rsi + 6]
jmp 0x1004787f1