Function at 0x51eb4c
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 0x51ee0e
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.004c4a6c
mov edx, dword [ebp - 0xc]
lea eax, [edi + 8]
call fcn.00405af0
mov eax, ebx
cmp eax, 0x3d
jg 0x51ebc7
je 0x51ec0d
cmp eax, 0xffffffff
jg 0x51ebba
je case.0x51ebd3.68
sub eax, 0xfffffff9
je case.0x51ebd3.68
add eax, 0xfffffffe
sub eax, 3
jb case.0x51ebd3.68
jmp case.0x51ebd3.63
sub eax, 0x3b
je 0x51ebf6
dec eax
je case.0x51ebd3.67
jmp case.0x51ebd3.63
add eax, 0xffffffc2
cmp eax, 6
ja case.0x51ebd3.63
jmp dword [eax*4 + 0x51ebda]
lea eax, [edi + 8]
mov edx, 0x51ee24
call fcn.00405af0
mov ebx, 2
jmp case.0x51ebd3.63
lea eax, [edi + 8]
mov edx, 0x51ee38
call fcn.00405af0
mov ebx, 0x11
jmp case.0x51ebd3.63
lea eax, [edi + 8]
mov edx, 0x51ee48
call fcn.00405af0
mov ebx, 5
jmp case.0x51ebd3.63
lea eax, [edi + 8]
mov edx, 0x51ee5c
call fcn.00405af0
mov ebx, 4
jmp case.0x51ebd3.63
mov eax, dword [esi + 0x18]
call fcn.004c48cc
mov ebx, eax
cmp ebx, 0x42
jne case.0x51ebd3.63
mov eax, dword [esi + 0x18]
call fcn.004c48e0
lea eax, [edi + 8]
mov edx, 0x51ee78
call fcn.00405af0
mov dword [edi + 0x18], 0xe
mov ebx, 3
jmp case.0x51ebd3.63
mov eax, dword [esi + 0x18]
call fcn.004c48cc
mov ebx, eax
cmp ebx, 0x3f
je 0x51ecab
lea eax, [edi + 8]
mov edx, 0x51ee88
call fcn.00405af0
xor ebx, ebx
jmp case.0x51ebd3.63
mov eax, dword [esi + 0x18]
call fcn.004c48e0
lea eax, [edi + 8]
mov edx, 0x51ee98
call fcn.00405af0
mov ebx, 0xd
jmp case.0x51ebd3.63
lea eax, [edi + 8]
mov edx, dword [edi + 4]
call fcn.00405af0
lea edx, [ebp - 0x14]
mov eax, dword [edi + 0x14]
call fcn.0040a54c
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 0x51eeb0
call fcn.00405550
mov edx, dword [ebp - 0x10]
lea eax, [edi + 4]
call fcn.00405c74
cmp ebx, 0xfffffffc
jne 0x51ed10
mov byte [ebp - 5], 1
lea eax, [edi + 8]
mov edx, 0x51eeb8
call fcn.00405ca0
jmp case.0x51ebd3.63
cmp ebx, 0x44
je case.0x51ebd3.63
mov dword [ebp - 4], ebx
jmp 0x51ede3
test ebx, ebx
jl 0x51ed3d
cmp ebx, 0x15
jge 0x51ed3d
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x51ed32
cmp ebx, dword [eax - 4]
jb 0x51ed37
call fcn.00404194
mov eax, dword [eax + ebx*4]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x18]
call fcn.004c48cc
mov ebx, eax
cmp ebx, 0xfffffffc
jne 0x51ed50
mov byte [ebp - 5], 1
mov eax, dword [esi + 0x18]
call fcn.004c48e0
mov ebx, eax
mov eax, ebx
add eax, 7
cmp eax, 6
ja case.0x51ed64.2
jmp dword [eax*4 + 0x51ed6b]
mov dword [ebp - 4], ebx
jmp 0x51ede3
mov byte [ebp - 5], 0
mov edx, edi
mov eax, esi
call fcn.0051eebc
jmp 0x51ed50
cmp byte [ebp - 5], 0
je 0x51ed50
lea eax, [edi + 8]
mov edx, 0x51eeb8
call fcn.00405ca0
jmp 0x51ed50
cmp byte [ebp - 5], 0
je 0x51edda
cmp ebx, 0xfffffffe
je 0x51edbf
test ebx, ebx
jl 0x51edda
lea edx, [ebp - 0x18]
mov eax, dword [esi + 0x18]
call fcn.004c4a6c
mov edx, dword [ebp - 0x18]
lea eax, [edi + 8]
call fcn.00405ca0
jmp 0x51ed50
mov byte [ebp - 5], 0
jmp 0x51ed50
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51ee15
lea eax, [ebp - 0x18]
call fcn.00405ab4
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.0040525c
lea eax, [ebp - 0xc]
call fcn.00405ab4
ret