Function at 0x4c3f50
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.004c3ce0
test eax, eax
je 0x4c3faf
mov cl, byte [esi + 1]
mov edi, esi
inc esi
call fcn.004c3ce0
test eax, eax
jne 0x4c3f74
cmp esi, edx
je 0x4c3faf
mov eax, esi
jbe 0x4c3f91
cmp byte [edi], 0x2f
cmove eax, edi
push 1
push 0
lea edi, [ebx + 4]
sub eax, edx
push edi
push eax
call fcn.004ab400
add esp, 0x10
test eax, eax
je 0x4c3fb6
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebx + 4], 0
cmp byte [esi], 0x3b
jne 0x4c4138
nop
mov al, byte [esi + 1]
inc esi
mov edx, esi
test al, al
je 0x4c418b
mov cl, al
mov al, cl
cmp cl, 0x3d
je 0x4c3fe1
mov al, byte [esi + 1]
inc esi
mov cl, al
test al, al
jne 0x4c3fd0
test al, al
je 0x4c418b
push 1
push 0
lea eax, [ebp - 0xc]
push eax
mov eax, esi
sub eax, edx
push eax
call fcn.004ab400
add esp, 0x10
test eax, eax
jne 0x4c41de
mov cl, byte [esi + 1]
inc esi
mov edx, esi
call fcn.004c3ce0
test eax, eax
je 0x4c4022
mov cl, byte [esi + 1]
inc esi
call fcn.004c3ce0
test eax, eax
jne 0x4c4015
push 1
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
mov eax, esi
sub eax, edx
push eax
call fcn.004ab400
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x4c41c2
mov edi, dword [ebp - 0xc]
mov edx, str.UIDVALIDITY
mov ecx, edi
call fcn.004bf790
test eax, eax
je 0x4c407a
cmp dword [ebx + 8], 0
jne 0x4c407a
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
test eax, eax
je 0x4c4072
cmp byte [ecx + eax - 1], 0x2f
jne 0x4c4072
mov byte [ecx + eax - 1], 0
mov dword [ebx + 8], ecx
jmp 0x4c4113
mov edx, 0x59af08
mov ecx, edi
call fcn.004bf790
test eax, eax
je 0x4c40ab
cmp dword [ebx + 0xc], 0
jne 0x4c40ab
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
test eax, eax
je 0x4c40a6
cmp byte [ecx + eax - 1], 0x2f
jne 0x4c40a6
mov byte [ecx + eax - 1], 0
mov dword [ebx + 0xc], ecx
jmp 0x4c4113
mov edx, str.SECTION
mov ecx, edi
call fcn.004bf790
test eax, eax
je 0x4c40dc
cmp dword [ebx + 0x10], 0
jne 0x4c40dc
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
test eax, eax
je 0x4c40d7
cmp byte [ecx + eax - 1], 0x2f
jne 0x4c40d7
mov byte [ecx + eax - 1], 0
mov dword [ebx + 0x10], ecx
jmp 0x4c4113
mov edx, str.PARTIAL
mov ecx, edi
call fcn.004bf790
test eax, eax
je 0x4c4197
cmp dword [ebx + 0x14], 0
jne 0x4c4197
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
test eax, eax
je 0x4c4110
cmp byte [ecx + eax - 1], 0x2f
jne 0x4c4110
mov byte [ecx + eax - 1], 0
mov dword [ebx + 0x14], ecx
mov dword [ebp - 4], 0
test edi, edi
je 0x4c412f
push edi
call dword [0x5bcc7c]
add esp, 4
mov dword [ebp - 0xc], 0
cmp byte [esi], 0x3b
je 0x4c3fc0
cmp dword [ebx + 4], 0
je 0x4c4186
cmp dword [ebx + 0xc], 0
jne 0x4c4186
cmp byte [esi], 0x3f
jne 0x4c4186
mov cl, byte [esi + 1]
inc esi
mov edx, esi
call fcn.004c3ce0
test eax, eax
je 0x4c416d
nop dword [eax + eax]
mov cl, byte [esi + 1]
inc esi
call fcn.004c3ce0
test eax, eax
jne 0x4c4160
push 1
push 0
lea eax, [ebx + 0x18]
push eax
mov eax, esi
sub eax, edx
push eax
call fcn.004ab400
add esp, 0x10
test eax, eax
jne 0x4c41de
cmp byte [esi], 0
je 0x4c41dc
pop edi
pop esi
mov eax, 3
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x4c41a5
push edi
call dword [0x5bcc7c]
add esp, 4
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c418b
push eax
call dword [0x5bcc7c]
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 0x4c41d3
push eax
call dword [0x5bcc7c]
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