Function at 0x1003a3d4
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.1003a1fc
add esp, 4
test eax, eax
je 0x1003a44a
inc esi
movzx eax, byte [esi]
push eax
call fcn.1003a1fc
add esp, 4
test eax, eax
jne 0x1003a403
cmp esi, edx
je 0x1003a44a
mov ecx, esi
jbe 0x1003a425
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.10042184
add esp, 0x18
test eax, eax
je 0x1003a5bd
jmp 0x1003a639
xor ebx, ebx
mov dword [edi + 4], ebx
jmp 0x1003a5bd
inc esi
mov ecx, esi
mov al, byte [esi]
test al, al
je 0x1003a5ee
cmp al, 0x3d
je 0x1003a46c
inc esi
mov al, byte [esi]
test al, al
jne 0x1003a461
cmp byte [esi], 0
je 0x1003a5ee
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.10042184
add esp, 0x18
test eax, eax
jne 0x1003a639
inc esi
mov ecx, esi
jmp 0x1003a49b
inc esi
movzx eax, byte [esi]
push eax
call fcn.1003a1fc
add esp, 4
test eax, eax
jne 0x1003a49a
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.10042184
add esp, 0x18
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x1003a5f3
push str.UIDVALIDITY
push dword [ebp - 4]
call fcn.1002f31a
pop ecx
pop ecx
test eax, eax
je 0x1003a509
cmp dword [edi + 8], ebx
jne 0x1003a509
mov eax, dword [ebp - 8]
test eax, eax
je 0x1003a4fe
mov ecx, dword [ebp + 8]
cmp byte [ecx + eax - 1], 0x2f
jne 0x1003a4fe
mov byte [ecx + eax - 1], bl
mov eax, dword [ebp + 8]
mov dword [edi + 8], eax
jmp 0x1003a5a6
push 0x10088538
push dword [ebp - 4]
call fcn.1002f31a
pop ecx
pop ecx
test eax, eax
je 0x1003a53e
cmp dword [edi + 0xc], ebx
jne 0x1003a53e
mov eax, dword [ebp - 8]
test eax, eax
je 0x1003a536
mov ecx, dword [ebp + 8]
cmp byte [ecx + eax - 1], 0x2f
jne 0x1003a536
mov byte [ecx + eax - 1], bl
mov eax, dword [ebp + 8]
mov dword [edi + 0xc], eax
jmp 0x1003a5a6
push str.SECTION
push dword [ebp - 4]
call fcn.1002f31a
pop ecx
pop ecx
test eax, eax
je 0x1003a573
cmp dword [edi + 0x10], ebx
jne 0x1003a573
mov eax, dword [ebp - 8]
test eax, eax
je 0x1003a56b
mov ecx, dword [ebp + 8]
cmp byte [ecx + eax - 1], 0x2f
jne 0x1003a56b
mov byte [ecx + eax - 1], bl
mov eax, dword [ebp + 8]
mov dword [edi + 0x10], eax
jmp 0x1003a5a6
push str.PARTIAL
push dword [ebp - 4]
call fcn.1002f31a
pop ecx
pop ecx
test eax, eax
je 0x1003a5da
cmp dword [edi + 0x14], ebx
jne 0x1003a5da
mov eax, dword [ebp - 8]
test eax, eax
je 0x1003a5a0
mov ecx, dword [ebp + 8]
cmp byte [ecx + eax - 1], 0x2f
jne 0x1003a5a0
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 [0x1009d004]
push dword [ebp + 8]
call dword [0x1009d004]
pop ecx
pop ecx
cmp byte [esi], 0x3b
je 0x1003a454
cmp dword [edi + 4], ebx
je 0x1003a62f
cmp dword [edi + 0xc], ebx
jne 0x1003a62f
cmp byte [esi], 0x3f
jne 0x1003a62f
inc esi
mov ecx, esi
jmp 0x1003a603
push dword [ebp - 4]
call dword [0x1009d004]
push dword [ebp + 8]
call dword [0x1009d004]
pop ecx
pop ecx
push 3
pop eax
jmp 0x1003a639
push dword [ebp - 4]
call dword [0x1009d004]
mov eax, dword [ebp - 0x10]
pop ecx
jmp 0x1003a639
inc esi
movzx eax, byte [esi]
push eax
call fcn.1003a1fc
add esp, 4
test eax, eax
jne 0x1003a602
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.10042184
add esp, 0x18
test eax, eax
jne 0x1003a639
xor eax, eax
cmp byte [esi], al
push 3
pop ecx
cmovne eax, ecx
pop edi
pop esi
pop ebx
leave
ret