Function at 0x10183860
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x24
mov eax, dword [0x1026d48c]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
mov ebx, dword [esp + 0x2c]
push edi
mov edi, dword [esp + 0x34]
mov ecx, edi
call fcn.10010660
test ebx, ebx
jne 0x10183899
pop edi
mov eax, 7
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.1018f87e
add esp, 0x24
ret
push esi
mov esi, dword [ebx]
test esi, esi
jne 0x101838b7
pop esi
pop edi
mov eax, 7
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.1018f87e
add esp, 0x24
ret
mov al, byte [esi]
cmp al, 0x20
je 0x101838c9
cmp al, 9
je 0x101838c9
cmp al, 0xd
je 0x101838c9
cmp al, 0xa
jne 0x101838ce
add esi, 1
jmp 0x101838b7
mov al, byte [esi]
test al, al
jne 0x101838ed
mov dword [ebx], esi
pop esi
pop edi
mov eax, 7
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.1018f87e
add esp, 0x24
ret
cmp al, 0x3c
jne 0x101838fb
mov eax, 4
jmp 0x10183bae
cmp al, 0x3e
jne 0x10183909
mov eax, 5
jmp 0x10183bae
cmp al, 0x2c
je 0x10183ba9
cmp al, 0x3b
je 0x10183ba9
mov dl, 0x3d
cmp al, dl
jne 0x101839e8
cmp byte [esi + 1], 0x3f
jne 0x101839e8
mov al, byte [esi + 2]
mov ecx, esi
add esi, 2
test al, al
je 0x1018398c
lea esp, [esp]
cmp al, 0x3f
je 0x10183967
mov al, byte [esi + 1]
add esi, 1
test al, al
jne 0x10183940
mov dword [ebx], esi
pop esi
pop edi
mov eax, 8
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.1018f87e
add esp, 0x24
ret
cmp byte [esi], 0
je 0x1018398c
mov al, byte [esi + 1]
add esi, 1
cmp al, 0x71
je 0x10183982
cmp al, 0x51
je 0x10183982
cmp al, 0x62
je 0x10183982
cmp al, 0x42
jne 0x1018398c
mov al, byte [esi + 1]
add esi, 1
cmp al, 0x3f
je 0x101839a9
mov dword [ebx], esi
pop esi
pop edi
mov eax, 8
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.1018f87e
add esp, 0x24
ret
cmp al, 0x3f
jne 0x101839ae
cmp byte [esi + 1], dl
je 0x101839ba
mov al, byte [esi + 1]
add esi, 1
test al, al
jne 0x101839a5
jmp 0x1018398c
cmp byte [esi], 0
je 0x1018398c
add esi, 2
mov eax, esi
sub eax, ecx
push eax
push ecx
mov ecx, edi
call fcn.10010df0
mov dword [ebx], esi
pop esi
pop edi
mov eax, 3
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.1018f87e
add esp, 0x24
ret
xor ecx, ecx
cmp al, 0x22
jne 0x10183b21
mov al, byte [esi + 1]
add esi, 1
cmp al, 0x22
je 0x10183a48
lea esp, [esp]
test al, al
je 0x10183a37
cmp al, 0x5c
jne 0x10183a12
mov al, byte [esi + 1]
add esi, 1
test al, al
je 0x10183a37
mov byte [esp + ecx + 0xc], al
add ecx, 1
cmp ecx, 0x20
jne 0x10183a2d
push ecx
lea ecx, [esp + 0x10]
push ecx
mov ecx, edi
call fcn.10010df0
xor ecx, ecx
mov al, byte [esi + 1]
add esi, 1
cmp al, 0x22
jne 0x10183a00
test ecx, ecx
je 0x10183a48
push ecx
lea edx, [esp + 0x10]
push edx
mov ecx, edi
call fcn.10010df0
cmp byte [esi], 0
je 0x10183a50
add esi, 1
push 0x101e504c
mov ecx, edi
mov dword [ebx], esi
call fcn.10010cb0
test al, al
je 0x10183b92
push str._PN
mov ecx, edi
call fcn.10010cb0
test al, al
jne 0x10183afe
push 0x1022f8ac
mov ecx, edi
call fcn.10010cb0
test al, al
jne 0x10183afe
push 0x1022f870
mov ecx, edi
call fcn.10010cb0
test al, al
jne 0x10183afe
push str._OU
mov ecx, edi
call fcn.10010cb0
test al, al
jne 0x10183afe
push 0x1022f848
mov ecx, edi
call fcn.10010cb0
test al, al
jne 0x10183afe
push 0x10238ec8
mov ecx, edi
call fcn.10010cb0
test al, al
jne 0x10183afe
push 0x1022f88c
mov ecx, edi
call fcn.10010cb0
test al, al
jne 0x10183afe
push str._ADMD
mov ecx, edi
call fcn.10010cb0
test al, al
jne 0x10183afe
push str._PRMD
mov ecx, edi
call fcn.10010cb0
test al, al
je 0x10183b92
cmp byte [esi], 0x40
jne 0x10183b92
push 0x101afd14
mov ecx, edi
call fcn.10013b40
push 0x101afd14
mov ecx, edi
call fcn.10010b90
xor ecx, ecx
mov al, byte [esi]
cmp al, 0x20
je 0x10183b79
cmp al, 9
je 0x10183b68
test al, al
je 0x10183b68
cmp al, 0x3e
je 0x10183b68
cmp al, 0x3c
je 0x10183b68
cmp al, 0x22
je 0x10183b68
cmp al, 0x2c
je 0x10183b68
cmp al, 0x3b
je 0x10183b68
mov byte [esp + ecx + 0xc], al
add ecx, 1
cmp ecx, 0x20
jne 0x10183b5e
push ecx
lea eax, [esp + 0x10]
push eax
mov ecx, edi
call fcn.10010df0
xor ecx, ecx
mov al, byte [esi + 1]
add esi, 1
cmp al, 0x20
jne 0x10183b27
test ecx, ecx
je 0x10183b79
push ecx
lea ecx, [esp + 0x10]
push ecx
mov ecx, edi
call fcn.10010df0
mov dword [ebx], esi
pop esi
pop edi
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.1018f87e
add esp, 0x24
ret
pop esi
pop edi
mov eax, 2
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.1018f87e
add esp, 0x24
ret
mov eax, 6
mov ecx, dword [esp + 0x2c]
add esi, 1
mov dword [ebx], esi
pop esi
pop edi
pop ebx
xor ecx, esp
call fcn.1018f87e
add esp, 0x24
ret