Function at 0x56db59
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov eax, dword [eax]
mov dword [ebp - 0xc], eax
mov ecx, dword [eax + 0x4768]
mov esi, ecx
mov edi, dword [eax + 0x114]
movzx eax, byte [ecx]
push eax
call fcn.0056d985
add esp, 4
test al, al
je 0x56dbce
mov edx, esi
inc esi
movzx eax, byte [esi]
push eax
call fcn.0056d985
add esp, 4
test al, al
jne 0x56db88
cmp esi, ecx
je 0x56dbce
mov eax, esi
jbe 0x56dba9
cmp byte [edx], 0x2f
cmove eax, edx
push 1
xor ebx, ebx
lea edx, [edi + 4]
push ebx
push edx
sub eax, ecx
push eax
push ecx
push dword [ebp - 0xc]
call fcn.00579ea8
add esp, 0x18
test eax, eax
je 0x56dd47
jmp 0x56ddc0
xor ebx, ebx
mov dword [edi + 4], ebx
jmp 0x56dd47
inc esi
mov edx, esi
mov al, byte [esi]
test al, al
je 0x56dd78
mov cl, al
mov al, cl
cmp cl, 0x3d
je 0x56dbf7
inc esi
mov al, byte [esi]
mov cl, al
test al, al
jne 0x56dbe7
test al, al
je 0x56dd78
push 1
push ebx
lea eax, [ebp - 4]
push eax
mov eax, esi
sub eax, edx
push eax
push edx
push dword [ebp - 0xc]
call fcn.00579ea8
add esp, 0x18
test eax, eax
jne 0x56ddc0
inc esi
mov ecx, esi
jmp 0x56dc25
inc esi
movzx eax, byte [esi]
push eax
call fcn.0056d985
add esp, 4
test al, al
jne 0x56dc24
push 1
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 8]
push eax
mov eax, esi
sub eax, ecx
push eax
push ecx
push dword [ebp - 0xc]
call fcn.00579ea8
add esp, 0x18
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x56dd7d
push str.UIDVALIDITY
push dword [ebp - 4]
call fcn.00567cb9
pop ecx
pop ecx
test eax, eax
je 0x56dc93
cmp dword [edi + 8], ebx
jne 0x56dc93
mov eax, dword [ebp - 8]
test eax, eax
je 0x56dc88
mov ecx, dword [ebp + 8]
cmp byte [ecx + eax - 1], 0x2f
jne 0x56dc88
mov byte [ecx + eax - 1], bl
mov eax, dword [ebp + 8]
mov dword [edi + 8], eax
jmp 0x56dd30
push 0x5f205c
push dword [ebp - 4]
call fcn.00567cb9
pop ecx
pop ecx
test eax, eax
je 0x56dcc8
cmp dword [edi + 0xc], ebx
jne 0x56dcc8
mov eax, dword [ebp - 8]
test eax, eax
je 0x56dcc0
mov ecx, dword [ebp + 8]
cmp byte [ecx + eax - 1], 0x2f
jne 0x56dcc0
mov byte [ecx + eax - 1], bl
mov eax, dword [ebp + 8]
mov dword [edi + 0xc], eax
jmp 0x56dd30
push str.SECTION
push dword [ebp - 4]
call fcn.00567cb9
pop ecx
pop ecx
test eax, eax
je 0x56dcfd
cmp dword [edi + 0x10], ebx
jne 0x56dcfd
mov eax, dword [ebp - 8]
test eax, eax
je 0x56dcf5
mov ecx, dword [ebp + 8]
cmp byte [ecx + eax - 1], 0x2f
jne 0x56dcf5
mov byte [ecx + eax - 1], bl
mov eax, dword [ebp + 8]
mov dword [edi + 0x10], eax
jmp 0x56dd30
push str.PARTIAL
push dword [ebp - 4]
call fcn.00567cb9
pop ecx
pop ecx
test eax, eax
je 0x56dd64
cmp dword [edi + 0x14], ebx
jne 0x56dd64
mov eax, dword [ebp - 8]
test eax, eax
je 0x56dd2a
mov ecx, dword [ebp + 8]
cmp byte [ecx + eax - 1], 0x2f
jne 0x56dd2a
mov byte [ecx + eax - 1], bl
mov eax, dword [ebp + 8]
mov dword [edi + 0x14], eax
push dword [ebp - 4]
mov dword [ebp + 8], ebx
call dword [0x624064]
push dword [ebp + 8]
call dword [0x624064]
pop ecx
pop ecx
cmp byte [esi], 0x3b
je 0x56dbd8
cmp dword [edi + 4], ebx
je 0x56ddb9
cmp dword [edi + 0xc], ebx
jne 0x56ddb9
cmp byte [esi], 0x3f
jne 0x56ddb9
inc esi
mov ecx, esi
jmp 0x56dd8d
push dword [ebp - 4]
call dword [0x624064]
push dword [ebp + 8]
call dword [0x624064]
pop ecx
pop ecx
push 3
pop eax
jmp 0x56ddc0
push dword [ebp - 4]
call dword [0x624064]
mov eax, dword [ebp - 0x10]
pop ecx
jmp 0x56ddc0
inc esi
movzx eax, byte [esi]
push eax
call fcn.0056d985
add esp, 4
test al, al
jne 0x56dd8c
push 1
push ebx
lea eax, [edi + 0x18]
push eax
mov eax, esi
sub eax, ecx
push eax
push ecx
push dword [ebp - 0xc]
call fcn.00579ea8
add esp, 0x18
test eax, eax
jne 0x56ddc0
cmp byte [esi], 0
jne 0x56dd78
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret