Function at 0x540d08
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 0x540fca
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.004e6de4
mov edx, dword [ebp - 0xc]
lea eax, [edi + 8]
call fcn.00405c78
mov eax, ebx
cmp eax, 0x3d
jg 0x540d83
je 0x540dc9
cmp eax, 0xffffffff
jg 0x540d76
je case.0x540d8f.68
sub eax, 0xfffffff9
je case.0x540d8f.68
add eax, 0xfffffffe
sub eax, 3
jb case.0x540d8f.68
jmp case.0x540d8f.63
sub eax, 0x3b
je 0x540db2
dec eax
je case.0x540d8f.67
jmp case.0x540d8f.63
add eax, 0xffffffc2
cmp eax, 6
ja case.0x540d8f.63
jmp dword [eax*4 + 0x540d96]
lea eax, [edi + 8]
mov edx, 0x540fe0
call fcn.00405c78
mov ebx, 2
jmp case.0x540d8f.63
lea eax, [edi + 8]
mov edx, 0x540ff4
call fcn.00405c78
mov ebx, 0x11
jmp case.0x540d8f.63
lea eax, [edi + 8]
mov edx, 0x541004
call fcn.00405c78
mov ebx, 5
jmp case.0x540d8f.63
lea eax, [edi + 8]
mov edx, 0x541018
call fcn.00405c78
mov ebx, 4
jmp case.0x540d8f.63
mov eax, dword [esi + 0x18]
call fcn.004e6c44
mov ebx, eax
cmp ebx, 0x42
jne case.0x540d8f.63
mov eax, dword [esi + 0x18]
call fcn.004e6c58
lea eax, [edi + 8]
mov edx, 0x541034
call fcn.00405c78
mov dword [edi + 0x18], 0xe
mov ebx, 3
jmp case.0x540d8f.63
mov eax, dword [esi + 0x18]
call fcn.004e6c44
mov ebx, eax
cmp ebx, 0x3f
je 0x540e67
lea eax, [edi + 8]
mov edx, 0x541044
call fcn.00405c78
xor ebx, ebx
jmp case.0x540d8f.63
mov eax, dword [esi + 0x18]
call fcn.004e6c58
lea eax, [edi + 8]
mov edx, 0x541054
call fcn.00405c78
mov ebx, 0xd
jmp case.0x540d8f.63
lea eax, [edi + 8]
mov edx, dword [edi + 4]
call fcn.00405c78
lea edx, [ebp - 0x14]
mov eax, dword [edi + 0x14]
call fcn.0040aa00
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 0x54106c
call fcn.004056d8
mov edx, dword [ebp - 0x10]
lea eax, [edi + 4]
call fcn.00405dfc
cmp ebx, 0xfffffffc
jne 0x540ecc
mov byte [ebp - 5], 1
lea eax, [edi + 8]
mov edx, 0x541074
call fcn.00405e28
jmp case.0x540d8f.63
cmp ebx, 0x44
je case.0x540d8f.63
mov dword [ebp - 4], ebx
jmp 0x540f9f
test ebx, ebx
jl 0x540ef9
cmp ebx, 0x15
jge 0x540ef9
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x540eee
cmp ebx, dword [eax - 4]
jb 0x540ef3
call fcn.004042ec
mov eax, dword [eax + ebx*4]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x18]
call fcn.004e6c44
mov ebx, eax
cmp ebx, 0xfffffffc
jne 0x540f0c
mov byte [ebp - 5], 1
mov eax, dword [esi + 0x18]
call fcn.004e6c58
mov ebx, eax
mov eax, ebx
add eax, 7
cmp eax, 6
ja case.0x540f20.2
jmp dword [eax*4 + 0x540f27]
mov dword [ebp - 4], ebx
jmp 0x540f9f
mov byte [ebp - 5], 0
mov edx, edi
mov eax, esi
call fcn.00541078
jmp 0x540f0c
cmp byte [ebp - 5], 0
je 0x540f0c
lea eax, [edi + 8]
mov edx, 0x541074
call fcn.00405e28
jmp 0x540f0c
cmp byte [ebp - 5], 0
je 0x540f96
cmp ebx, 0xfffffffe
je 0x540f7b
test ebx, ebx
jl 0x540f96
lea edx, [ebp - 0x18]
mov eax, dword [esi + 0x18]
call fcn.004e6de4
mov edx, dword [ebp - 0x18]
lea eax, [edi + 8]
call fcn.00405e28
jmp 0x540f0c
mov byte [ebp - 5], 0
jmp 0x540f0c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x540fd1
lea eax, [ebp - 0x18]
call fcn.00405c3c
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.004053e4
lea eax, [ebp - 0xc]
call fcn.00405c3c
ret