Function at 0x41c598
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd0
mov eax, 0x4df44d
push ebx
push esi
push edi
mov ebx, dword [ebp + 0xc]
call fcn.004d08c0
mov word [ebp - 0x14], 8
xor edi, edi
mov word [ebp - 0x14], 8
xor esi, esi
xor eax, eax
mov dword [ebp - 0x28], eax
mov edx, dword [ebp + 8]
push edx
call fcn.004cdfec
pop ecx
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp + 0x10]
mov byte [ecx], 0
mov eax, dword [ebp + 0x14]
mov byte [eax], 0
mov edx, dword [ebp + 8]
mov eax, edx
cmp ebx, edi
je 0x41c450
movsx edx, byte [eax]
cmp edx, 0x3f
jne 0x41c412
inc edi
cmp edx, 0x26
jne 0x41c418
inc edi
mov dl, byte [eax]
test dl, dl
je 0x41c424
movsx ecx, dl
inc ecx
jne 0x41c435
xor eax, eax
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
jmp 0x41c7e4
mov ecx, dword [ebp - 0x2c]
inc esi
dec ecx
inc eax
cmp esi, ecx
jle 0x41c405
xor eax, eax
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
jmp 0x41c7e4
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x28]
lea edi, [eax + ecx]
mov eax, dword [ebp + 8]
lea ebx, [eax + esi]
movsx eax, byte [ebx]
cmp eax, 0x25
jne 0x41c59f
inc esi
inc ebx
mov dl, byte [ebx]
push edx
call fcn.0041b24c
shl eax, 4
inc esi
inc ebx
pop ecx
mov byte [ebp - 0x2d], al
mov cl, byte [ebx]
push ecx
call fcn.0041b24c
pop ecx
add byte [ebp - 0x2d], al
mov al, byte [ebp - 0x2d]
cmp al, 0xc3
jne case.0x41c4dd.129
movsx edx, byte [ebx + 1]
cmp edx, 0x25
jne case.0x41c4dd.129
inc esi
inc ebx
inc esi
inc ebx
mov cl, byte [ebx]
push ecx
call fcn.0041b24c
shl eax, 4
inc esi
inc ebx
pop ecx
mov byte [ebp - 0x2d], al
mov al, byte [ebx]
push eax
call fcn.0041b24c
pop ecx
add byte [ebp - 0x2d], al
xor edx, edx
mov dl, byte [ebp - 0x2d]
add edx, 0xffffff7f
cmp edx, 0x39
ja case.0x41c4dd.129
mov dl, byte [edx + 0x41c4e4]
jmp dword [edx*4 + 0x41c51e]
mov byte [ebp - 0x2d], 0xe1
jmp case.0x41c4dd.129
mov byte [ebp - 0x2d], 0xe9
jmp case.0x41c4dd.129
mov byte [ebp - 0x2d], 0xed
jmp case.0x41c4dd.129
mov byte [ebp - 0x2d], 0xf3
jmp case.0x41c4dd.129
mov byte [ebp - 0x2d], 0xfa
jmp case.0x41c4dd.129
mov byte [ebp - 0x2d], 0xf1
jmp case.0x41c4dd.129
mov byte [ebp - 0x2d], 0xd1
jmp case.0x41c4dd.129
mov byte [ebp - 0x2d], 0xc1
jmp case.0x41c4dd.129
mov byte [ebp - 0x2d], 0xc9
jmp case.0x41c4dd.129
mov byte [ebp - 0x2d], 0xcd
jmp case.0x41c4dd.129
mov byte [ebp - 0x2d], 0xd3
jmp case.0x41c4dd.129
mov byte [ebp - 0x2d], 0xda
mov cl, byte [ebp - 0x2d]
mov byte [edi], cl
jmp 0x41c5ae
mov al, byte [ebx]
mov byte [edi], al
movsx edx, al
cmp edx, 0x2b
jne 0x41c5ae
mov byte [edi], 0x20
mov byte [edi + 1], 0
movsx ecx, byte [ebx]
cmp ecx, 0x3d
jne 0x41c5c0
mov byte [edi], 0
inc esi
jmp 0x41c613
mov dl, byte [ebx]
movsx eax, dl
cmp eax, 0x3f
je 0x41c5d6
cmp eax, 0x26
je 0x41c5d6
test dl, dl
je 0x41c5d6
inc eax
jne 0x41c5ed
mov byte [edi], 0
mov eax, 1
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
jmp 0x41c7e4
inc edi
inc esi
inc ebx
mov ecx, dword [ebp - 0x2c]
dec ecx
cmp esi, ecx
jle 0x41c45f
mov byte [edi], 0
mov eax, 1
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
jmp 0x41c7e4
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp + 0x14]
mov edi, eax
mov eax, dword [ebp + 8]
lea ebx, [eax + esi]
movsx eax, byte [ebx]
cmp eax, 0x25
jne 0x41c763
inc esi
inc ebx
mov dl, byte [ebx]
push edx
call fcn.0041b24c
shl eax, 4
inc esi
inc ebx
pop ecx
mov byte [ebp - 0x2d], al
mov cl, byte [ebx]
push ecx
call fcn.0041b24c
pop ecx
add byte [ebp - 0x2d], al
mov al, byte [ebp - 0x2d]
cmp al, 0xc3
jne case.0x41c6a1.129
movsx edx, byte [ebx + 1]
cmp edx, 0x25
jne case.0x41c6a1.129
inc esi
inc ebx
inc esi
inc ebx
mov cl, byte [ebx]
push ecx
call fcn.0041b24c
shl eax, 4
inc esi
inc ebx
pop ecx
mov byte [ebp - 0x2d], al
mov al, byte [ebx]
push eax
call fcn.0041b24c
pop ecx
add byte [ebp - 0x2d], al
xor edx, edx
mov dl, byte [ebp - 0x2d]
add edx, 0xffffff7f
cmp edx, 0x39
ja case.0x41c6a1.129
mov dl, byte [edx + 0x41c6a8]
jmp dword [edx*4 + 0x41c6e2]
mov byte [ebp - 0x2d], 0xe1
jmp case.0x41c6a1.129
mov byte [ebp - 0x2d], 0xe9
jmp case.0x41c6a1.129
mov byte [ebp - 0x2d], 0xed
jmp case.0x41c6a1.129
mov byte [ebp - 0x2d], 0xf3
jmp case.0x41c6a1.129
mov byte [ebp - 0x2d], 0xfa
jmp case.0x41c6a1.129
mov byte [ebp - 0x2d], 0xf1
jmp case.0x41c6a1.129
mov byte [ebp - 0x2d], 0xd1
jmp case.0x41c6a1.129
mov byte [ebp - 0x2d], 0xc1
jmp case.0x41c6a1.129
mov byte [ebp - 0x2d], 0xc9
jmp case.0x41c6a1.129
mov byte [ebp - 0x2d], 0xcd
jmp case.0x41c6a1.129
mov byte [ebp - 0x2d], 0xd3
jmp case.0x41c6a1.129
mov byte [ebp - 0x2d], 0xda
mov cl, byte [ebp - 0x2d]
mov byte [edi], cl
jmp 0x41c772
mov al, byte [ebx]
mov byte [edi], al
movsx edx, al
cmp edx, 0x2b
jne 0x41c772
mov byte [edi], 0x20
mov byte [edi + 1], 0
mov dl, byte [ebx]
movsx eax, dl
cmp eax, 0x3f
je 0x41c79e
cmp eax, 0x26
je 0x41c79e
test dl, dl
je 0x41c79e
inc eax
je 0x41c79e
inc dword [ebp - 0x28]
inc edi
mov ecx, dword [ebp - 0x2c]
inc esi
dec ecx
inc ebx
cmp esi, ecx
jle 0x41c623
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x28]
mov byte [eax + edx], 0
mov eax, 1
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
jmp 0x41c7e4
mov esp, ebp
mov edi, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x34]
pop ebp
ret