Function at 0x1005b902
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 8]
push ebx
mov eax, dword [eax]
push esi
mov edx, dword [eax + 0x4ac0]
push edi
mov edi, dword [eax + 0x164]
mov dword [ebp - 0xc], eax
movzx eax, byte [edx]
push eax
mov esi, edx
call fcn.1005b72a
add esp, 4
test eax, eax
je 0x1005b978
inc esi
movzx eax, byte [esi]
push eax
call fcn.1005b72a
add esp, 4
test eax, eax
jne 0x1005b931
cmp esi, edx
je 0x1005b978
mov ecx, esi
jbe 0x1005b953
lea eax, [esi - 1]
cmp byte [eax], 0x2f
cmove ecx, eax
push 1
xor ebx, ebx
push ebx
lea eax, [edi + 4]
push eax
sub ecx, edx
push ecx
push edx
push dword [ebp - 0xc]
call fcn.1006366c
add esp, 0x18
test eax, eax
je 0x1005baeb
jmp 0x1005bb67
xor ebx, ebx
mov dword [edi + 4], ebx
jmp 0x1005baeb
inc esi
mov ecx, esi
mov al, byte [esi]
test al, al
je 0x1005bb1c
cmp al, 0x3d
je 0x1005b99a
inc esi
mov al, byte [esi]
test al, al
jne 0x1005b98f
cmp byte [esi], 0
je 0x1005bb1c
push 1
push ebx
lea eax, [ebp - 4]
push eax
mov eax, esi
sub eax, ecx
push eax
push ecx
push dword [ebp - 0xc]
call fcn.1006366c
add esp, 0x18
test eax, eax
jne 0x1005bb67
inc esi
mov ecx, esi
jmp 0x1005b9c9
inc esi
movzx eax, byte [esi]
push eax
call fcn.1005b72a
add esp, 4
test eax, eax
jne 0x1005b9c8
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.1006366c
add esp, 0x18
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x1005bb21
push str.UIDVALIDITY
push dword [ebp - 4]
call fcn.100507d8
pop ecx
pop ecx
test eax, eax
je 0x1005ba37
cmp dword [edi + 8], ebx
jne 0x1005ba37
mov eax, dword [ebp - 8]
test eax, eax
je 0x1005ba2c
mov ecx, dword [ebp + 8]
cmp byte [ecx + eax - 1], 0x2f
jne 0x1005ba2c
mov byte [ecx + eax - 1], bl
mov eax, dword [ebp + 8]
mov dword [edi + 8], eax
jmp 0x1005bad4
push 0x1009d568
push dword [ebp - 4]
call fcn.100507d8
pop ecx
pop ecx
test eax, eax
je 0x1005ba6c
cmp dword [edi + 0xc], ebx
jne 0x1005ba6c
mov eax, dword [ebp - 8]
test eax, eax
je 0x1005ba64
mov ecx, dword [ebp + 8]
cmp byte [ecx + eax - 1], 0x2f
jne 0x1005ba64
mov byte [ecx + eax - 1], bl
mov eax, dword [ebp + 8]
mov dword [edi + 0xc], eax
jmp 0x1005bad4
push str.SECTION
push dword [ebp - 4]
call fcn.100507d8
pop ecx
pop ecx
test eax, eax
je 0x1005baa1
cmp dword [edi + 0x10], ebx
jne 0x1005baa1
mov eax, dword [ebp - 8]
test eax, eax
je 0x1005ba99
mov ecx, dword [ebp + 8]
cmp byte [ecx + eax - 1], 0x2f
jne 0x1005ba99
mov byte [ecx + eax - 1], bl
mov eax, dword [ebp + 8]
mov dword [edi + 0x10], eax
jmp 0x1005bad4
push str.PARTIAL
push dword [ebp - 4]
call fcn.100507d8
pop ecx
pop ecx
test eax, eax
je 0x1005bb08
cmp dword [edi + 0x14], ebx
jne 0x1005bb08
mov eax, dword [ebp - 8]
test eax, eax
je 0x1005bace
mov ecx, dword [ebp + 8]
cmp byte [ecx + eax - 1], 0x2f
jne 0x1005bace
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 [0x100b5004]
push dword [ebp + 8]
call dword [0x100b5004]
pop ecx
pop ecx
cmp byte [esi], 0x3b
je 0x1005b982
cmp dword [edi + 4], ebx
je 0x1005bb5d
cmp dword [edi + 0xc], ebx
jne 0x1005bb5d
cmp byte [esi], 0x3f
jne 0x1005bb5d
inc esi
mov ecx, esi
jmp 0x1005bb31
push dword [ebp - 4]
call dword [0x100b5004]
push dword [ebp + 8]
call dword [0x100b5004]
pop ecx
pop ecx
push 3
pop eax
jmp 0x1005bb67
push dword [ebp - 4]
call dword [0x100b5004]
mov eax, dword [ebp - 0x10]
pop ecx
jmp 0x1005bb67
inc esi
movzx eax, byte [esi]
push eax
call fcn.1005b72a
add esp, 4
test eax, eax
jne 0x1005bb30
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.1006366c
add esp, 0x18
test eax, eax
jne 0x1005bb67
xor eax, eax
cmp byte [esi], al
push 3
pop ecx
cmovne eax, ecx
pop edi
pop esi
pop ebx
leave
ret