Function at 0x10018240
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [eax]
mov ecx, dword [eax + 0x4808]
push ebx
push esi
push edi
mov edi, dword [eax + 0x128]
mov al, byte [ecx]
mov dword [ebp - 0x10], edi
mov esi, ecx
call fcn.100180e0
test eax, eax
je 0x100182a3
mov al, byte [esi + 1]
inc esi
call fcn.100180e0
test eax, eax
jne 0x10018267
cmp esi, ecx
je 0x100182a3
mov eax, esi
jbe 0x10018285
cmp byte [esi - 1], 0x2f
jne 0x10018285
lea eax, [esi - 1]
push 1
xor ebx, ebx
lea edx, [edi + 4]
push ebx
push edx
sub eax, ecx
call fcn.10007f40
add esp, 0xc
cmp eax, ebx
je 0x100182a8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor ebx, ebx
mov dword [edi + 4], ebx
cmp byte [esi], 0x3b
jne 0x1001842c
mov al, byte [esi + 1]
inc esi
mov ecx, esi
cmp al, bl
je 0x100184af
nop
cmp al, 0x3d
je 0x100182d8
mov al, byte [esi + 1]
inc esi
cmp al, bl
jne 0x100182c0
pop edi
pop esi
mov eax, 3
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi], bl
je 0x100184af
push 1
lea edx, [ebp - 8]
push ebx
mov eax, esi
push edx
sub eax, ecx
call fcn.10007f40
add esp, 0xc
cmp eax, ebx
jne 0x1001847e
mov al, byte [esi + 1]
inc esi
mov ecx, esi
call fcn.100180e0
test eax, eax
je 0x1001831d
lea ebx, [ebx]
mov al, byte [esi + 1]
inc esi
call fcn.100180e0
test eax, eax
jne 0x10018310
push 1
lea eax, [ebp - 0xc]
push eax
lea edx, [ebp - 4]
mov eax, esi
push edx
sub eax, ecx
call fcn.10007f40
mov ecx, dword [ebp - 8]
mov edi, eax
add esp, 0xc
cmp edi, ebx
jne 0x10018485
mov eax, str.UIDVALIDITY
call fcn.10027190
mov edi, dword [ebp - 0x10]
test eax, eax
je 0x10018373
cmp dword [edi + 8], ebx
jne 0x10018373
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
cmp eax, ebx
jbe 0x1001836b
cmp byte [ecx + eax - 1], 0x2f
jne 0x1001836b
mov byte [ecx + eax - 1], bl
mov dword [edi + 8], ecx
jmp 0x10018409
mov ecx, dword [ebp - 8]
mov eax, 0x1004e4c0
call fcn.10027190
test eax, eax
je 0x100183a3
cmp dword [edi + 0xc], ebx
jne 0x100183a3
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
cmp eax, ebx
jbe 0x1001839e
cmp byte [ecx + eax - 1], 0x2f
jne 0x1001839e
mov byte [ecx + eax - 1], bl
mov dword [edi + 0xc], ecx
jmp 0x10018409
mov ecx, dword [ebp - 8]
mov eax, str.SECTION
call fcn.10027190
test eax, eax
je 0x100183d3
cmp dword [edi + 0x10], ebx
jne 0x100183d3
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
cmp eax, ebx
jbe 0x100183ce
cmp byte [ecx + eax - 1], 0x2f
jne 0x100183ce
mov byte [ecx + eax - 1], bl
mov dword [edi + 0x10], ecx
jmp 0x10018409
mov ecx, dword [ebp - 8]
mov eax, str.PARTIAL
call fcn.10027190
test eax, eax
je 0x10018498
cmp dword [edi + 0x14], ebx
jne 0x10018498
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
cmp eax, ebx
jbe 0x10018406
cmp byte [ecx + eax - 1], 0x2f
jne 0x10018406
mov byte [ecx + eax - 1], bl
mov dword [edi + 0x14], ecx
mov eax, dword [ebp - 8]
push eax
mov dword [ebp - 4], ebx
call dword [0x100560ec]
push ebx
call dword [0x100560ec]
add esp, 8
cmp byte [esi], 0x3b
je 0x100182b1
mov edi, dword [ebp - 0x10]
cmp dword [edi + 4], ebx
je 0x10018474
cmp dword [edi + 0xc], ebx
jne 0x10018474
cmp byte [esi], 0x3f
jne 0x10018474
mov al, byte [esi + 1]
inc esi
mov ecx, esi
call fcn.100180e0
test eax, eax
je 0x1001845d
lea ebx, [ebx]
mov al, byte [esi + 1]
inc esi
call fcn.100180e0
test eax, eax
jne 0x10018450
push 1
push ebx
add edi, 0x18
mov eax, esi
push edi
sub eax, ecx
call fcn.10007f40
add esp, 0xc
cmp eax, ebx
jne 0x1001847e
movsx eax, byte [esi]
neg eax
sbb eax, eax
and eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ecx
call dword [0x100560ec]
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 8]
push edx
call dword [0x100560ec]
mov eax, dword [ebp - 4]
push eax
call dword [0x100560ec]
add esp, 8
pop edi
pop esi
mov eax, 3
pop ebx
mov esp, ebp
pop ebp
ret