Function at 0x100088b0
Capabilities:
Parse credit card information

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1003d1e0
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1c
push esi
mov eax, dword [0x1005801c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 0x4c]
xor cl, cl
cmp eax, 0xffffffff
je 0x100089a0
nop word [eax + eax]
cmp eax, 0x7c
je 0x100089a0
cmp eax, 0x29
jne 0x100089b5
cmp dword [esi + 0x10], 0
jne 0x100089a0
test dword [esi + 0x50], 0x10000000
je 0x10008e15
cmp eax, 0x5d
jne 0x1000893b
test dword [esi + 0x50], 0x10000000
je 0x10008e07
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10009bf0
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x10008984
cmp byte [eax], 0x5c
jne 0x10008982
inc eax
cmp eax, ecx
je 0x10008982
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000896f
mov dl, byte [eax]
cmp dl, 0x28
je 0x10008980
cmp dl, 0x29
je 0x10008980
test cl, 0x10
jne 0x10008982
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10008980
cmp cl, 0x7d
jne 0x10008982
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10007c30
mov ecx, esi
call fcn.100099c0
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x10008900
mov al, cl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp eax, 0x2e
jne 0x10008a30
push 0x14
call fcn.1001fd46
mov ecx, eax
add esp, 4
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], 0
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx], 0x1004f834
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x10008a25
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
jmp 0x10008948
cmp eax, 0x5c
jne 0x10008bd2
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10008a75
cmp byte [eax], 0x5c
jne 0x10008a73
inc eax
cmp eax, ecx
je 0x10008a73
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10008a60
mov dl, byte [eax]
cmp dl, 0x28
je 0x10008a71
cmp dl, 0x29
je 0x10008a71
test cl, 0x10
jne 0x10008a73
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10008a71
cmp cl, 0x7d
jne 0x10008a73
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10007c30
test byte [esi + 0x50], 0x80
je 0x10008bc6
cmp byte [esi + 0x48], 0x62
jne 0x10008b44
push 0x14
call fcn.1001fd46
mov ecx, eax
add esp, 4
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 4], 1
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx], 0x1004f834
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x10008afb
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10008dc9
cmp byte [eax], 0x5c
jne 0x10008dc7
inc eax
cmp eax, ecx
je 0x10008dc7
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10008b3c
mov cl, byte [eax]
cmp cl, 0x28
je 0x10008dc5
cmp cl, 0x29
je 0x10008dc5
test dl, 0x10
jmp 0x10008db7
cmp byte [esi + 0x48], 0x42
jne 0x10008bc6
push 0x14
call fcn.1001fd46
mov ecx, eax
add esp, 4
mov dword [ebp - 0x20], ecx
mov dword [ebp - 4], 2
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx], 0x1004f834
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x10008bb5
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov eax, ecx
mov dword [esi + 0x28], ecx
xor dword [eax + 8], 1
jmp 0x10008b01
mov ecx, esi
call fcn.10009660
jmp 0x1000898b
cmp eax, 0x5b
jne 0x10008c30
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10008c13
cmp byte [eax], 0x5c
jne 0x10008c11
inc eax
cmp eax, ecx
je 0x10008c11
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10008bfe
mov dl, byte [eax]
cmp dl, 0x28
je 0x10008c0f
cmp dl, 0x29
je 0x10008c0f
test cl, 0x10
jne 0x10008c11
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10008c0f
cmp cl, 0x7d
jne 0x10008c11
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10007c30
mov ecx, esi
call fcn.100094e0
cmp dword [esi + 0x4c], 0x5d
jne 0x10008e07
jmp 0x10008948
cmp eax, 0x28
jne 0x10008ce2
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10008c75
cmp byte [eax], 0x5c
jne 0x10008c73
inc eax
cmp eax, ecx
je 0x10008c73
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10008c60
mov dl, byte [eax]
cmp dl, 0x28
je 0x10008c71
cmp dl, 0x29
je 0x10008c71
test cl, 0x10
jne 0x10008c73
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10008c71
cmp cl, 0x7d
jne 0x10008c73
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10007c30
mov ecx, esi
call fcn.10009820
cmp dword [esi + 0x4c], 0x29
mov byte [ebp - 0x11], al
jne 0x10008e15
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10008ccc
cmp byte [eax], 0x5c
jne 0x10008cca
inc eax
cmp eax, ecx
je 0x10008cca
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10008cb7
mov dl, byte [eax]
cmp dl, 0x28
je 0x10008cc8
cmp dl, 0x29
je 0x10008cc8
test cl, 0x10
jne 0x10008cca
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10008cc8
cmp cl, 0x7d
jne 0x10008cca
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10007c30
cmp byte [ebp - 0x11], 0
je 0x10008992
jmp 0x1000898b
cmp eax, 0x5e
jne 0x10008d13
push 0x14
call fcn.1001fd46
mov ecx, eax
add esp, 4
mov dword [ebp - 0x24], ecx
mov dword [ebp - 4], 3
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], 2
jmp 0x10008d46
cmp eax, 0x24
jne 0x10008dd5
push 0x14
call fcn.1001fd46
mov ecx, eax
add esp, 4
mov dword [ebp - 0x28], ecx
mov dword [ebp - 4], 4
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], 3
mov dword [ecx], 0x1004f834
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x10008d87
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x10008dc9
cmp byte [eax], 0x5c
jne 0x10008dc7
inc eax
cmp eax, ecx
je 0x10008dc7
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10008db4
mov dl, byte [eax]
cmp dl, 0x28
je 0x10008dc5
cmp dl, 0x29
je 0x10008dc5
test cl, 0x10
jne 0x10008dc7
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10008dc5
cmp cl, 0x7d
jne 0x10008dc7
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10007c30
jmp 0x10008992
cmp eax, 0x2a
je 0x10008e00
cmp eax, 0x2b
je 0x10008e00
cmp eax, 0x3f
je 0x10008e00
cmp eax, 0x7b
je 0x10008e00
cmp eax, 0x7d
jne 0x10008929
test dword [esi + 0x50], 0x10000000
je 0x10008e0e
jmp 0x1000893b
push 0xa
call fcn.10007c20
push 4
call fcn.10007c20
push 6
call fcn.10007c20
push 5
call fcn.10007c20
int3