Function at 0x5172cc
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
mov esi, eax
xor eax, eax
push ebp
push 0x51758e
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
lea edx, [ebp - 0xc]
mov eax, dword [esi + 0x18]
call fcn.004bef28
mov edx, dword [ebp - 0xc]
lea eax, [edi + 8]
call fcn.00405bc8
mov eax, ebx
cmp eax, 0x3d
jg 0x517347
je 0x51738d
cmp eax, 0xffffffff
jg 0x51733a
je case.0x517353.68
sub eax, 0xfffffff9
je case.0x517353.68
add eax, 0xfffffffe
sub eax, 3
jb case.0x517353.68
jmp case.0x517353.63
sub eax, 0x3b
je 0x517376
dec eax
je case.0x517353.67
jmp case.0x517353.63
add eax, 0xffffffc2
cmp eax, 6
ja case.0x517353.63
jmp dword [eax*4 + 0x51735a]
lea eax, [edi + 8]
mov edx, 0x5175a4
call fcn.00405bc8
mov ebx, 2
jmp case.0x517353.63
lea eax, [edi + 8]
mov edx, 0x5175b8
call fcn.00405bc8
mov ebx, 0x11
jmp case.0x517353.63
lea eax, [edi + 8]
mov edx, 0x5175c8
call fcn.00405bc8
mov ebx, 5
jmp case.0x517353.63
lea eax, [edi + 8]
mov edx, 0x5175dc
call fcn.00405bc8
mov ebx, 4
jmp case.0x517353.63
mov eax, dword [esi + 0x18]
call fcn.004bed88
mov ebx, eax
cmp ebx, 0x42
jne case.0x517353.63
mov eax, dword [esi + 0x18]
call fcn.004bed9c
lea eax, [edi + 8]
mov edx, 0x5175f8
call fcn.00405bc8
mov dword [edi + 0x18], 0xe
mov ebx, 3
jmp case.0x517353.63
mov eax, dword [esi + 0x18]
call fcn.004bed88
mov ebx, eax
cmp ebx, 0x3f
je 0x51742b
lea eax, [edi + 8]
mov edx, 0x517608
call fcn.00405bc8
xor ebx, ebx
jmp case.0x517353.63
mov eax, dword [esi + 0x18]
call fcn.004bed9c
lea eax, [edi + 8]
mov edx, 0x517618
call fcn.00405bc8
mov ebx, 0xd
jmp case.0x517353.63
lea eax, [edi + 8]
mov edx, dword [edi + 4]
call fcn.00405bc8
lea edx, [ebp - 0x14]
mov eax, dword [edi + 0x14]
call fcn.0040a944
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 0x517630
call fcn.00405628
mov edx, dword [ebp - 0x10]
lea eax, [edi + 4]
call fcn.00405d64
cmp ebx, 0xfffffffc
jne 0x517490
mov byte [ebp - 5], 1
lea eax, [edi + 8]
mov edx, 0x517638
call fcn.00405d90
jmp case.0x517353.63
cmp ebx, 0x44
je case.0x517353.63
mov dword [ebp - 4], ebx
jmp 0x517563
test ebx, ebx
jl 0x5174bd
cmp ebx, 0x15
jge 0x5174bd
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x5174b2
cmp ebx, dword [eax - 4]
jb 0x5174b7
call fcn.004041b8
mov eax, dword [eax + ebx*4]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x18]
call fcn.004bed88
mov ebx, eax
cmp ebx, 0xfffffffc
jne 0x5174d0
mov byte [ebp - 5], 1
mov eax, dword [esi + 0x18]
call fcn.004bed9c
mov ebx, eax
mov eax, ebx
add eax, 7
cmp eax, 6
ja case.0x5174e4.2
jmp dword [eax*4 + 0x5174eb]
mov dword [ebp - 4], ebx
jmp 0x517563
mov byte [ebp - 5], 0
mov edx, edi
mov eax, esi
call fcn.0051763c
jmp 0x5174d0
cmp byte [ebp - 5], 0
je 0x5174d0
lea eax, [edi + 8]
mov edx, 0x517638
call fcn.00405d90
jmp 0x5174d0
cmp byte [ebp - 5], 0
je 0x51755a
cmp ebx, 0xfffffffe
je 0x51753f
test ebx, ebx
jl 0x51755a
lea edx, [ebp - 0x18]
mov eax, dword [esi + 0x18]
call fcn.004bef28
mov edx, dword [ebp - 0x18]
lea eax, [edi + 8]
call fcn.00405d90
jmp 0x5174d0
mov byte [ebp - 5], 0
jmp 0x5174d0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x517595
lea eax, [ebp - 0x18]
call fcn.00405b8c
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00405334
lea eax, [ebp - 0xc]
call fcn.00405b8c
ret