Function at 0x100af3b0
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x100af7bd
mov ebp, 1
nop word [eax + eax]
cmp eax, 0x7c
je 0x100af7bd
cmp eax, 0x29
jne 0x100af440
cmp dword [esi + 0x10], 0
jne 0x100af7bd
cmp eax, eax
jne 0x100af440
test dword [esi + 0x50], 0x10000000
je 0x100af7e1
cmp eax, 0x5d
jne 0x100af40b
test dword [esi + 0x50], 0x10000000
je 0x100af7d3
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.100b0770
mov ecx, esi
call fcn.100af350
mov eax, dword [esi + 0x4c]
xor ebx, ebx
or edi, 0xffffffff
cmp eax, 0x2a
je 0x100af771
cmp eax, 0x2b
jne 0x100af6fc
mov ebx, ebp
jmp 0x100af771
cmp eax, 0x2e
jne 0x100af47c
push 0x14
call fcn.1017d6f1
add esp, 4
lea ecx, [esi + 0x24]
mov dword [eax], 0x1020ac38
push eax
mov dword [eax + 4], 5
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
call fcn.100af840
jmp 0x100af418
cmp eax, 0x5c
jne 0x100af638
mov ecx, esi
call fcn.100af350
mov ecx, dword [esi + 0x50]
mov eax, ecx
and eax, 0x80
je 0x100af4df
cmp byte [esi + 0x48], 0x62
jne 0x100af4df
push 0x14
call fcn.1017d6f1
mov dword [eax + 4], 4
add esp, 4
mov dword [eax], 0x1020ac38
mov dword [eax + 8], 0
lea ecx, [esi + 0x24]
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
push eax
call fcn.100af840
mov ecx, esi
call fcn.100af350
jmp 0x100af7af
test eax, eax
je 0x100af530
cmp byte [esi + 0x48], 0x42
jne 0x100af530
push 0x14
call fcn.1017d6f1
add esp, 4
lea ecx, [esi + 0x24]
mov dword [eax], 0x1020ac38
push eax
mov dword [eax + 4], 4
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
call fcn.100af840
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], ebp
call fcn.100af350
jmp 0x100af7af
test ecx, 0x100
je 0x100af5f8
push 3
push 0x7fffffff
push 0xa
mov ecx, esi
call fcn.100b2020
cmp eax, 0x7fffffff
je 0x100af5f8
mov ebx, dword [esi + 0x44]
mov dl, bl
mov eax, dword [esi + 0x50]
test ebx, ebx
jne 0x100af57c
test eax, 0x100000
je 0x100af7cc
lea ecx, [esi + 0x24]
push edx
call fcn.100b0770
jmp 0x100af41f
test eax, 0x200
je 0x100af58c
cmp ebx, 9
ja 0x100af7e8
cmp dword [esi + 0xc], ebx
jb 0x100af7e8
cmp dword [esi + 0x20], ebx
jbe 0x100af7e8
mov ecx, dword [esi + 0x14]
mov eax, ebx
shr eax, 5
lea ecx, [ecx + eax*4]
mov eax, ebx
and eax, 0x1f
shlx eax, ebp, eax
test dword [ecx], eax
je 0x100af7e8
push 0x18
call fcn.1017d6f1
add esp, 4
lea ecx, [esi + 0x24]
mov dword [eax + 4], 0xf
push eax
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0x1020ac30
mov dword [eax + 0x14], ebx
call fcn.100af840
jmp 0x100af41f
mov ecx, esi
call fcn.100b1530
test al, al
je 0x100af615
movzx eax, byte [esi + 0x44]
lea ecx, [esi + 0x24]
push eax
call fcn.100b0770
jmp 0x100af41f
test dword [esi + 0x50], 0x20000
je 0x100af7cc
push 1
mov ecx, esi
call fcn.100b14b0
test al, al
je 0x100af7cc
jmp 0x100af41f
cmp eax, 0x5b
jne 0x100af65a
mov ecx, esi
call fcn.100af350
mov ecx, esi
call fcn.100b0500
cmp dword [esi + 0x4c], 0x5d
jne 0x100af7d3
jmp 0x100af418
cmp eax, 0x28
jne 0x100af68d
mov ecx, esi
call fcn.100af350
mov ecx, esi
call fcn.100b0630
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x100af7e1
mov ecx, esi
call fcn.100af350
test bl, bl
je 0x100af7af
jmp 0x100af41f
cmp eax, 0x5e
jne 0x100af6a5
push 0x14
call fcn.1017d6f1
mov dword [eax + 4], 2
jmp 0x100af4ac
cmp eax, 0x24
jne 0x100af6bd
push 0x14
call fcn.1017d6f1
mov dword [eax + 4], 3
jmp 0x100af4ac
cmp eax, 0x2a
je 0x100af7c5
cmp eax, 0x2b
je 0x100af7c5
cmp eax, 0x3f
je 0x100af7c5
cmp eax, 0x7b
je 0x100af7c5
cmp eax, 0x7d
jne 0x100af3f9
test dword [esi + 0x50], 0x10000000
je 0x100af7da
jmp 0x100af40b
cmp eax, 0x3f
jne 0x100af705
mov edi, ebp
jmp 0x100af771
cmp eax, 0x7b
jne 0x100af7af
mov ecx, esi
call fcn.100af350
push 7
push 0x7fffffff
push 0xa
mov ecx, esi
call fcn.100b2020
cmp eax, 0x7fffffff
je 0x100af7ef
cmp dword [esi + 0x4c], 0x2c
mov ebx, dword [esi + 0x44]
je 0x100af73d
mov edi, ebx
jmp 0x100af75e
mov ecx, esi
call fcn.100af350
cmp dword [esi + 0x4c], 0x7d
je 0x100af768
push 7
mov ecx, esi
call fcn.100b1490
test al, al
je 0x100af7ef
mov edi, dword [esi + 0x44]
cmp dword [esi + 0x4c], 0x7d
jne 0x100af7ef
cmp edi, 0xffffffff
je 0x100af771
cmp edi, ebx
jl 0x100af7ef
mov eax, dword [esi + 0x28]
mov ecx, esi
or dword [eax + 8], 4
call fcn.100af350
test dword [esi + 0x50], 0x400
je 0x100af79c
cmp dword [esi + 0x4c], 0x3f
jne 0x100af79c
mov ecx, esi
mov byte [esp + 0x10], 0
call fcn.100af350
jmp 0x100af7a1
mov byte [esp + 0x10], 1
push dword [esp + 0x10]
lea ecx, [esi + 0x24]
push edi
push ebx
call fcn.100b1940
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x100af3d0
pop edi
pop esi
pop ebp
mov al, cl
pop ebx
pop ecx
ret
push 0xa
call fcn.100ae700
push 2
call fcn.100ae700
push 4
call fcn.100ae700
push 6
call fcn.100ae700
push 5
call fcn.100ae700
push 3
call fcn.100ae700
push 7
call fcn.100ae700
int3