Function at 0x4c7670
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ecx]
sub esp, 0xc
mov edx, dword [eax + 0x8f48]
push ebx
mov ebx, dword [eax + 0x168]
push esi
mov cl, byte [edx]
mov esi, edx
push edi
call fcn.004c7400
test eax, eax
je 0x4c76cf
mov cl, byte [esi + 1]
mov edi, esi
inc esi
call fcn.004c7400
test eax, eax
jne 0x4c7694
cmp esi, edx
je 0x4c76cf
mov eax, esi
jbe 0x4c76b1
cmp byte [edi], 0x2f
cmove eax, edi
push 1
push 0
lea edi, [ebx + 4]
sub eax, edx
push edi
push eax
call fcn.004aeb20
add esp, 0x10
test eax, eax
je 0x4c76d6
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebx + 4], 0
cmp byte [esi], 0x3b
jne 0x4c7858
nop
mov al, byte [esi + 1]
inc esi
mov edx, esi
test al, al
je 0x4c78ab
mov cl, al
mov al, cl
cmp cl, 0x3d
je 0x4c7701
mov al, byte [esi + 1]
inc esi
mov cl, al
test al, al
jne 0x4c76f0
test al, al
je 0x4c78ab
push 1
push 0
lea eax, [ebp - 0xc]
push eax
mov eax, esi
sub eax, edx
push eax
call fcn.004aeb20
add esp, 0x10
test eax, eax
jne 0x4c78fe
mov cl, byte [esi + 1]
inc esi
mov edx, esi
call fcn.004c7400
test eax, eax
je 0x4c7742
mov cl, byte [esi + 1]
inc esi
call fcn.004c7400
test eax, eax
jne 0x4c7735
push 1
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
mov eax, esi
sub eax, edx
push eax
call fcn.004aeb20
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x4c78e2
mov edi, dword [ebp - 0xc]
mov edx, str.UIDVALIDITY
mov ecx, edi
call fcn.004c2eb0
test eax, eax
je 0x4c779a
cmp dword [ebx + 8], 0
jne 0x4c779a
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
test eax, eax
je 0x4c7792
cmp byte [ecx + eax - 1], 0x2f
jne 0x4c7792
mov byte [ecx + eax - 1], 0
mov dword [ebx + 8], ecx
jmp 0x4c7833
mov edx, 0x59f2e0
mov ecx, edi
call fcn.004c2eb0
test eax, eax
je 0x4c77cb
cmp dword [ebx + 0xc], 0
jne 0x4c77cb
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
test eax, eax
je 0x4c77c6
cmp byte [ecx + eax - 1], 0x2f
jne 0x4c77c6
mov byte [ecx + eax - 1], 0
mov dword [ebx + 0xc], ecx
jmp 0x4c7833
mov edx, str.SECTION
mov ecx, edi
call fcn.004c2eb0
test eax, eax
je 0x4c77fc
cmp dword [ebx + 0x10], 0
jne 0x4c77fc
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
test eax, eax
je 0x4c77f7
cmp byte [ecx + eax - 1], 0x2f
jne 0x4c77f7
mov byte [ecx + eax - 1], 0
mov dword [ebx + 0x10], ecx
jmp 0x4c7833
mov edx, str.PARTIAL
mov ecx, edi
call fcn.004c2eb0
test eax, eax
je 0x4c78b7
cmp dword [ebx + 0x14], 0
jne 0x4c78b7
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
test eax, eax
je 0x4c7830
cmp byte [ecx + eax - 1], 0x2f
jne 0x4c7830
mov byte [ecx + eax - 1], 0
mov dword [ebx + 0x14], ecx
mov dword [ebp - 4], 0
test edi, edi
je 0x4c784f
push edi
call dword [0x5c1c7c]
add esp, 4
mov dword [ebp - 0xc], 0
cmp byte [esi], 0x3b
je 0x4c76e0
cmp dword [ebx + 4], 0
je 0x4c78a6
cmp dword [ebx + 0xc], 0
jne 0x4c78a6
cmp byte [esi], 0x3f
jne 0x4c78a6
mov cl, byte [esi + 1]
inc esi
mov edx, esi
call fcn.004c7400
test eax, eax
je 0x4c788d
nop dword [eax + eax]
mov cl, byte [esi + 1]
inc esi
call fcn.004c7400
test eax, eax
jne 0x4c7880
push 1
push 0
lea eax, [ebx + 0x18]
push eax
mov eax, esi
sub eax, edx
push eax
call fcn.004aeb20
add esp, 0x10
test eax, eax
jne 0x4c78fe
cmp byte [esi], 0
je 0x4c78fc
pop edi
pop esi
mov eax, 3
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x4c78c5
push edi
call dword [0x5c1c7c]
add esp, 4
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c78ab
push eax
call dword [0x5c1c7c]
add esp, 4
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x4c78f3
push eax
call dword [0x5c1c7c]
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret