Function at 0x49a150
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov edi, ecx
xor edx, edx
xor esi, esi
mov dword [ebp - 0xc], edi
xor ebx, ebx
cmp dword [edi + 0x6c], edx
je 0x49a3c2
mov eax, dword [edi + 0xc]
mov edi, dword [edi + 0x6c]
mov dword [ebp - 4], eax
nop word [eax + eax]
mov al, byte [eax + edx]
movzx ecx, al
movzx ecx, byte [ecx + 0x6461b0]
test ecx, ecx
jne 0x49a1fb
cmp al, 0x41
jb 0x49a199
cmp al, 0x5a
jbe 0x49a200
cmp al, 0x61
jb 0x49a1a1
cmp al, 0x7a
jbe 0x49a200
cmp al, 0x30
jb 0x49a1a9
cmp al, 0x39
jbe 0x49a200
cmp al, 0x3d
je 0x49a200
cmp al, 0x24
je 0x49a200
cmp al, 0x21
je 0x49a200
cmp al, 0x3f
je 0x49a200
cmp al, 0x26
je 0x49a200
cmp al, 0x40
je 0x49a200
cmp al, 0x27
je 0x49a200
cmp al, 0x3e
je 0x49a200
cmp al, 0x3c
je 0x49a200
cmp al, 0x28
je 0x49a200
cmp al, 0x29
je 0x49a200
cmp al, 0x3a
je 0x49a200
cmp al, 0x2f
je 0x49a200
cmp al, 0x2d
je 0x49a200
cmp al, 0x5f
je 0x49a200
cmp al, 0x25
je 0x49a200
cmp al, 0x2e
je 0x49a200
cmp al, 0x7e
je 0x49a200
cmp al, 0x20
jne 0x49a1f8
inc ebx
jmp 0x49a200
inc esi
jmp 0x49a200
inc esi
add esi, ecx
add edx, ecx
mov eax, dword [ebp - 4]
inc edx
cmp edx, edi
jb 0x49a180
mov edi, dword [ebp - 0xc]
test esi, esi
jne 0x49a23c
test ebx, ebx
je 0x49a3c2
xor ecx, ecx
nop dword [eax]
mov eax, dword [edi + 0xc]
cmp byte [eax + ecx], 0x20
jne 0x49a22d
mov byte [eax + ecx], 0x2b
inc ecx
cmp ecx, dword [edi + 0x6c]
jb 0x49a220
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x6c]
lea ebx, [esi*2 + 4]
add eax, ebx
mov dword [ebp - 0x18], ebx
push eax
call fcn.00477830
mov edx, eax
add esp, 4
mov dword [ebp - 8], edx
test edx, edx
jne 0x49a266
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
xor ecx, ecx
xor esi, esi
mov dword [ebp - 4], ecx
cmp dword [edi + 0x6c], ecx
jbe 0x49a376
mov eax, dword [edi + 0xc]
mov al, byte [ecx + eax]
movzx ebx, al
mov dword [ebp - 0x10], ebx
movzx ebx, byte [ebx + 0x6461b0]
mov dword [ebp - 0x14], ebx
test ebx, ebx
jne 0x49a32b
cmp al, 0x41
jb 0x49a2a0
cmp al, 0x5a
jbe 0x49a325
cmp al, 0x61
jb 0x49a2a8
cmp al, 0x7a
jbe 0x49a325
cmp al, 0x30
jb 0x49a2b0
cmp al, 0x39
jbe 0x49a325
cmp al, 0x3d
je 0x49a325
cmp al, 0x24
je 0x49a325
cmp al, 0x21
je 0x49a325
cmp al, 0x3f
je 0x49a325
cmp al, 0x26
je 0x49a325
cmp al, 0x40
je 0x49a325
cmp al, 0x27
je 0x49a325
cmp al, 0x3c
je 0x49a325
cmp al, 0x3e
je 0x49a325
cmp al, 0x28
je 0x49a325
cmp al, 0x29
je 0x49a325
cmp al, 0x3a
je 0x49a325
cmp al, 0x2f
je 0x49a325
cmp al, 0x2d
je 0x49a325
cmp al, 0x5f
je 0x49a325
cmp al, 0x25
je 0x49a325
cmp al, 0x2e
je 0x49a325
cmp al, 0x7e
je 0x49a325
lea ecx, [esi + edx]
inc esi
cmp al, 0x20
jne 0x49a308
mov byte [ecx], 0x2b
mov ecx, dword [ebp - 4]
jmp 0x49a366
lea eax, [esi + edx]
mov byte [ecx], 0x25
push eax
push dword [ebp - 0x10]
call fcn.00478110
mov edx, dword [ebp - 8]
add esp, 8
mov ecx, dword [ebp - 4]
add esi, 2
jmp 0x49a366
mov byte [esi + edx], al
inc esi
jmp 0x49a366
xor edi, edi
add ebx, 1
je 0x49a360
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0xc]
add eax, edi
mov cl, byte [eax + ecx]
mov byte [esi + edx], 0x25
inc esi
lea eax, [esi + edx]
push eax
movzx eax, cl
push eax
call fcn.00478110
mov edx, dword [ebp - 8]
inc edi
mov ecx, dword [ebp - 4]
add esp, 8
add esi, 2
cmp edi, ebx
jb 0x49a332
add ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, dword [edi + 0x6c]
jb 0x49a276
mov ebx, dword [ebp - 0x18]
mov byte [esi + edx], 0
cmp byte [edi + 9], 0
mov dword [edi + 0x6c], esi
je 0x49a39a
test esi, esi
je 0x49a39a
mov eax, dword [edi + 0xc]
test eax, eax
je 0x49a39a
push esi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [edi + 0x64]
test eax, eax
je 0x49a3b1
push eax
call fcn.00622535
add esp, 4
mov dword [edi + 0x68], 0
mov eax, dword [ebp - 8]
mov dword [edi + 0x64], eax
mov dword [edi + 0xc], eax
mov eax, dword [edi + 0x6c]
add eax, ebx
mov dword [edi + 0x68], eax
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret