Function at 0x300192b8
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, eax
mov eax, dword [0x3009de7c]
mov al, byte [eax + 0x10]
cmp al, 8
push edi
jne 0x300192e2
cmp dword [0x3009de6c], 0
jne 0x300192e2
xor edi, edi
mov dword [ebp - 8], edi
jmp 0x300192eb
mov dword [ebp - 8], 1
xor edi, edi
xor ecx, ecx
cmp al, 0xe
mov eax, dword [ebp + 8]
sete cl
mov byte [eax], 0
mov eax, dword [esi]
cmp eax, ebx
mov dword [ebp - 0x14], ecx
jb 0x30019309
push 0xf
pop eax
jmp 0x30019b0f
mov ecx, dword [0x3009de7c]
cmp dword [ecx + 0x19], edi
je 0x30019360
cmp dword [ebp - 8], edi
je 0x30019360
cmp dword [0x3009e094], edi
je 0x3001932d
push eax
push eax
call fcn.3008a38c
movzx eax, ax
jmp 0x30019330
movzx eax, byte [eax]
cmp eax, 0x27
je 0x30019360
push edi
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [0x3009de7c]
push dword [eax + 0x19]
push dword [eax + 0x15]
push dword [esi]
call fcn.30017b64
add esp, 0x18
mov dword [ebp - 0x10], eax
dec eax
je 0x300193bb
dec eax
dec eax
je 0x3001937d
dec eax
je 0x300193bb
cmp dword [0x3009e094], edi
mov eax, dword [esi]
je 0x3001944a
push eax
push eax
call fcn.3008a38c
movzx eax, ax
jmp 0x3001944d
mov eax, dword [ebp - 4]
add dword [esi], eax
mov eax, dword [esi]
cmp eax, ebx
jae 0x300193ac
cmp dword [0x3009e094], edi
je 0x3001939c
push esi
push eax
call fcn.3008a42f
movzx ecx, ax
jmp 0x300193a2
movzx ecx, byte [eax]
inc eax
mov dword [esi], eax
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax]
cmp ecx, eax
jne 0x30019382
cmp ebx, dword [esi]
sbb eax, eax
and eax, 0xfffffffa
add eax, 6
jmp 0x30019b0f
mov eax, dword [esi]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x18], eax
add eax, ecx
mov dword [esi], eax
cmp dword [0x3009e094], edi
je 0x300193db
push eax
push eax
call fcn.3008a38c
movzx eax, ax
jmp 0x300193de
movzx eax, byte [eax]
cmp eax, 0x2d
jne 0x300193e5
inc dword [esi]
cmp dword [ebp - 0x10], 4
jne 0x300193f2
call fcn.300181e7
jmp 0x300193f9
mov edi, ebx
call fcn.3001807c
mov edi, dword [ebp - 0xc]
cmp byte [edi], 0
je 0x30019436
cmp dword [0x3009e094], 0
mov eax, dword [esi]
je 0x30019418
push eax
push eax
call fcn.3008a38c
movzx eax, ax
jmp 0x3001941b
movzx eax, byte [eax]
mov cl, byte [edi]
movzx edx, cl
cmp eax, edx
je 0x30019430
mov eax, dword [ebp - 0x18]
mov dword [esi], eax
xor edi, edi
jmp 0x30019360
test cl, cl
je 0x30019436
inc dword [esi]
xor eax, eax
cmp dword [ebp - 0x10], 4
setne al
dec eax
and eax, 0x10
inc eax
inc eax
jmp 0x30019b0f
movzx eax, byte [eax]
mov ecx, dword [0x3009de7c]
movzx edx, byte [ecx + 0x35]
cmp eax, edx
jne 0x30019473
inc dword [esi]
mov eax, dword [0x3009de7c]
movzx eax, byte [eax + 0x35]
push ebx
push eax
call fcn.30017d28
pop ecx
jmp 0x30019b0e
cmp dword [0x3009de74], edi
jne 0x30019ab1
test byte [ecx + 8], 0x60
je 0x30019ab1
mov eax, dword [0x3009de78]
mov ecx, dword [0x3009de68]
imul eax, eax, 6
mov al, byte [eax + ecx - 5]
cmp al, 0x22
je 0x30019ab1
cmp al, 0x21
je 0x30019ab1
cmp dword [0x3009e094], edi
je 0x300194c1
mov edi, dword [esi]
push esi
push edi
call fcn.3008a42f
movzx ecx, ax
jmp 0x300194d0
mov eax, dword [esi]
movzx cx, byte [eax]
mov edi, dword [ebp + 0xc]
inc eax
movzx ecx, cx
mov dword [esi], eax
movzx eax, cx
cmp eax, 0x23
mov dword [ebp - 4], ecx
jg 0x300195d0
je 0x300195b6
cmp eax, 9
jl 0x30019507
cmp eax, 0xa
jle 0x3001955d
cmp eax, 0xd
je 0x3001955d
cmp eax, 0x20
je 0x3001955d
cmp eax, 0x21
je 0x30019551
cmp eax, 0x22
je 0x30019b00
mov ecx, dword [0x3009de7c]
test byte [ecx + 8], 0x40
je 0x300198f7
cmp eax, 0x23
je 0x300195c0
cmp eax, 0x7b
je 0x3001991e
xor ebx, ebx
cmp dword [0x3009e094], ebx
je 0x3001960b
mov dword [esi], edi
cmp dword [0x3009e094], ebx
je 0x30019605
push edi
push edi
call fcn.3008a38c
jmp 0x30019613
mov ecx, dword [esi]
cmp byte [ecx], 0x3d
jne 0x30019507
jmp 0x30019a4c
cmp dword [esi], ebx
jae 0x300195af
cmp dword [0x3009e094], 0
mov eax, dword [esi]
je 0x30019575
push eax
push eax
call fcn.3008a38c
jmp 0x30019579
movzx ax, byte [eax]
movzx eax, ax
cmp ax, 0x20
je 0x30019594
cmp ax, 9
je 0x30019594
cmp ax, 0xa
je 0x30019594
cmp ax, 0xd
jne 0x300195af
cmp dword [0x3009e094], 0
mov eax, dword [esi]
je 0x300195a8
push eax
push eax
call fcn.3008a335
jmp 0x300195a9
inc eax
cmp eax, ebx
mov dword [esi], eax
jb 0x30019561
push 0x10
jmp 0x30019303
cmp dword [ebp - 8], 0
je 0x30019aa2
push dword [ebp + 0xc]
push dword [ebp - 4]
call fcn.30017ce0
jmp 0x3001946d
cmp eax, 0x27
je 0x30019b00
cmp eax, 0x28
je 0x30019a4c
cmp eax, 0x3b
jle 0x30019507
cmp eax, 0x3e
jle 0x30019a4c
cmp eax, 0x5b
jne 0x30019507
push ebx
push 0x5d
jmp 0x30019468
movzx ax, byte [edi]
jmp 0x30019613
dec dword [esi]
mov eax, dword [esi]
movzx ax, byte [eax]
cmp dword [0x3009e094], ebx
movzx edi, ax
mov dword [ebp - 4], edi
je 0x30019629
push edi
call fcn.3008a250
jmp 0x3001962b
xor eax, eax
cmp eax, ebx
jne 0x3001966b
cmp dword [0x3009e094], ebx
je 0x30019648
call fcn.3008a1dd
sub ax, 0x411
neg ax
sbb eax, eax
inc eax
jmp 0x3001964a
xor eax, eax
cmp eax, ebx
je 0x3001965c
cmp di, 0xa0
jb 0x3001965c
cmp di, 0xdf
jbe 0x3001966b
push edi
call dword [sym.imp.USER32.dll_IsCharAlphaNumericA]
test eax, eax
je 0x300198c8
mov edi, dword [ebp + 0xc]
sub edi, dword [esi]
jmp 0x300198bf
push dword [0x3009de84]
lea eax, [ebp - 0x24]
push edi
push dword [esi]
push eax
call fcn.3001baea
test word [ebp - 0x24], 0x7fff
jne 0x300198dc
cmp edi, 3
jl 0x300198c8
cmp dword [0x3009e094], 0
je 0x300196cd
mov eax, dword [esi]
lea ecx, [eax + edi]
push ecx
push eax
call fcn.3008a30d
mov ebx, eax
mov eax, dword [esi]
mov ecx, eax
sub ecx, ebx
add ecx, edi
push ecx
push eax
call fcn.3008a38c
movzx eax, ax
push eax
call fcn.3008a250
jmp 0x300196d2
xor ebx, ebx
inc ebx
xor eax, eax
test eax, eax
jne 0x300197a2
cmp dword [0x3009e094], eax
je 0x300196f1
call fcn.3008a1dd
sub ax, 0x411
neg ax
sbb eax, eax
inc eax
test eax, eax
je 0x30019764
cmp dword [0x3009e094], 0
mov eax, dword [esi]
je 0x3001971e
lea ecx, [eax + edi]
push ecx
push eax
call fcn.3008a30d
mov ecx, dword [esi]
mov edx, ecx
sub edx, eax
add edx, edi
push edx
push ecx
call fcn.3008a38c
movzx eax, ax
jmp 0x30019723
movzx eax, byte [eax + edi - 1]
cmp eax, 0xa0
jl 0x30019764
cmp dword [0x3009e094], 0
mov eax, dword [esi]
je 0x30019755
lea ecx, [eax + edi]
push ecx
push eax
call fcn.3008a30d
mov ebx, eax
mov eax, dword [esi]
mov ecx, eax
sub ecx, ebx
add ecx, edi
push ecx
push eax
call fcn.3008a38c
movzx eax, ax
jmp 0x3001975d
movzx eax, byte [eax + edi - 1]
xor ebx, ebx
inc ebx
cmp eax, 0xdf
jle 0x300197a2
cmp dword [0x3009e094], 0
mov eax, dword [esi]
je 0x3001978f
lea ecx, [eax + edi]
push ecx
push eax
call fcn.3008a30d
mov ebx, eax
mov eax, dword [esi]
mov ecx, eax
sub ecx, ebx
add ecx, edi
push ecx
push eax
call fcn.3008a38c
movzx eax, ax
jmp 0x30019797
movzx eax, byte [eax + edi - 1]
xor ebx, ebx
inc ebx
push eax
call dword [sym.imp.USER32.dll_IsCharAlphaNumericA]
test eax, eax
je 0x300197ad
sub edi, ebx
cmp edi, 3
jge 0x3001969c
cmp edi, 3
jl 0x300198c8
xor ebx, ebx
cmp dword [0x3009e094], ebx
je 0x300197e6
mov eax, dword [esi]
lea ecx, [eax + edi]
push ecx
push eax
call fcn.3008a30d
mov ecx, dword [esi]
mov edx, ecx
sub edx, eax
add edx, edi
push edx
push ecx
call fcn.3008a38c
movzx eax, ax
push eax
call fcn.3008a250
jmp 0x300197e8
xor eax, eax
cmp eax, ebx
jne 0x300198bf
cmp dword [0x3009e094], ebx
je 0x30019809
call fcn.3008a1dd
sub ax, 0x411
neg ax
sbb eax, eax
inc eax
jmp 0x3001980b
xor eax, eax
cmp eax, ebx
je 0x30019877
cmp dword [0x3009e094], ebx
mov eax, dword [esi]
je 0x30019837
lea ecx, [eax + edi]
push ecx
push eax
call fcn.3008a30d
mov ecx, dword [esi]
mov edx, ecx
sub edx, eax
add edx, edi
push edx
push ecx
call fcn.3008a38c
movzx eax, ax
jmp 0x3001983c
movzx eax, byte [eax + edi - 1]
cmp eax, 0xa0
jl 0x30019877
cmp dword [0x3009e094], ebx
mov eax, dword [esi]
je 0x3001986b
lea ecx, [eax + edi]
push ecx
push eax
call fcn.3008a30d
mov ecx, dword [esi]
mov edx, ecx
sub edx, eax
add edx, edi
push edx
push ecx
call fcn.3008a38c
movzx eax, ax
jmp 0x30019870
movzx eax, byte [eax + edi - 1]
cmp eax, 0xdf
jle 0x300198bf
cmp dword [0x3009e094], ebx
mov eax, dword [esi]
je 0x300198a1
lea ecx, [eax + edi]
push ecx
push eax
call fcn.3008a30d
mov ebx, eax
mov eax, dword [esi]
mov ecx, eax
sub ecx, ebx
add ecx, edi
push ecx
push eax
call fcn.3008a38c
movzx eax, ax
jmp 0x300198a9
movzx eax, byte [eax + edi - 1]
xor ebx, ebx
inc ebx
push eax
call dword [sym.imp.USER32.dll_IsCharAlphaNumericA]
test eax, eax
jne 0x300198bf
sub edi, ebx
cmp edi, 3
jge 0x300197b6
cmp edi, 3
jge 0x30019675
cmp dword [0x3009e094], 0
mov eax, dword [esi]
je 0x300198e5
push eax
push eax
call fcn.3008a335
jmp 0x300198e6
add dword [esi], edi
push 6
jmp 0x30019303
inc eax
mov dword [esi], eax
mov eax, dword [0x3009de7c]
test byte [eax + 8], 0x20
je 0x30019b7b
cmp dword [ebp - 0x14], 0
je 0x30019979
cmp word [ebp - 4], 0x30
jb 0x3001990b
cmp word [ebp - 4], 0x39
jbe 0x3001996a
cmp dword [0x3009e094], 0
je 0x3001992a
push dword [ebp - 4]
call fcn.3008a250
jmp 0x3001992c
mov dword [ebp - 4], 0x7d
jmp 0x300195c0
xor eax, eax
test eax, eax
mov ebx, dword [sym.imp.USER32.dll_CharUpperA]
movzx edi, word [ebp - 4]
je 0x3001993e
mov eax, edi
jmp 0x30019944
push edi
call ebx
movzx eax, al
cmp eax, 0x41
jl 0x30019979
xor eax, eax
cmp dword [0x3009e094], eax
je 0x3001995b
push dword [ebp - 4]
call fcn.3008a250
test eax, eax
jne 0x30019965
push edi
call ebx
movzx edi, al
cmp edi, 0x46
jg 0x30019979
mov ebx, dword [ebp + 0xc]
dec dword [esi]
call fcn.300181e7
jmp 0x30019b0f
cmp dword [ebp - 8], 0
je 0x300199f7
mov eax, dword [ebp - 4]
cmp ax, 0x30
jb 0x3001998e
cmp ax, 0x39
jbe 0x300199ea
mov ecx, dword [0x3009de84]
movzx cx, byte [ecx + 5]
cmp ax, cx
je 0x300199a8
cmp ax, 0x2d
jne 0x30019a4c
cmp dword [0x3009e094], 0
mov eax, dword [esi]
je 0x300199bf
push eax
push eax
call fcn.3008a38c
movzx eax, ax
jmp 0x300199c2
movzx eax, byte [eax]
cmp eax, 0x30
jl 0x30019a4c
cmp dword [0x3009e094], 0
mov eax, dword [esi]
je 0x300199e2
push eax
push eax
call fcn.3008a38c
movzx eax, ax
jmp 0x300199e5
movzx eax, byte [eax]
cmp eax, 0x39
jg 0x30019a4c
mov edi, dword [ebp + 0xc]
call fcn.3001807c
jmp 0x30019b0f
cmp dword [0x3009e094], 0
je 0x30019a0a
push dword [ebp - 4]
call fcn.3008a250
jmp 0x30019a0c
xor eax, eax
test eax, eax
jne 0x30019a4c
cmp dword [0x3009e094], eax
je 0x30019a29
call fcn.3008a1dd
sub ax, 0x411
neg ax
sbb eax, eax
inc eax
jmp 0x30019a2b
xor eax, eax
test eax, eax
je 0x30019a3f
cmp word [ebp - 4], 0xa0
jb 0x30019a3f
cmp word [ebp - 4], 0xdf
jbe 0x30019a4c
push dword [ebp - 4]
call dword [sym.imp.USER32.dll_IsCharAlphaA]
test eax, eax
je 0x30019aa2
mov eax, dword [esi]
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push edi
push eax
mov eax, dword [ebp + 0xc]
call fcn.300189bc
test eax, eax
pop ecx
pop ecx
je 0x30019aa2
cmp eax, 0xd
jne 0x30019a8b
mov cl, byte [edi]
cmp cl, 5
jb 0x30019a7b
cmp cl, 0x10
jb 0x30019a8b
cmp dword [ebp - 8], 0
je 0x30019aa2
cmp cl, 0x12
je 0x30019a8b
cmp cl, 0x11
jne 0x30019aa2
cmp dword [ebp - 8], 0
jne 0x30019a9b
cmp eax, 0xa
jne 0x30019a9b
cmp byte [edi], 0x23
jne 0x30019aa2
mov ecx, dword [ebp - 0x10]
mov dword [esi], ecx
jmp 0x30019b0f
push dword [ebp + 0xc]
mov eax, dword [ebp - 4]
mov edi, esi
call fcn.30017e09
jmp 0x30019b0e
cmp dword [0x3009e094], edi
je 0x30019ac6
push esi
push dword [esi]
call fcn.3008a42f
movzx edi, ax
jmp 0x30019ad2
mov eax, dword [esi]
movzx cx, byte [eax]
inc eax
movzx edi, cx
mov dword [esi], eax
movzx eax, di
cmp eax, 0x23
mov dword [ebp - 4], edi
jg 0x30019b5b
je 0x30019d8a
cmp eax, 9
jl 0x30019b7b
cmp eax, 0xa
jle 0x30019b14
cmp eax, 0xd
je 0x30019b14
cmp eax, 0x20
je 0x30019b14
cmp eax, 0x22
jne 0x30019b7b
push dword [ebp - 4]
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
call fcn.30017d6e
pop ecx
pop edi
pop esi
pop ebx
leave
ret
mov edi, dword [ebp + 0xc]
jmp 0x30019b52
cmp dword [0x3009e094], 0
mov eax, dword [esi]
je 0x30019b2d
push eax
push eax
call fcn.3008a38c
jmp 0x30019b31
movzx ax, byte [eax]
movzx eax, ax
cmp ax, 0x20
je 0x30019b50
cmp ax, 9
je 0x30019b50
cmp ax, 0xa
je 0x30019b50
cmp ax, 0xd
jne 0x300195af
inc dword [esi]
cmp dword [esi], edi
jb 0x30019b19
jmp 0x300195af
cmp eax, 0x27
je 0x30019b00
cmp eax, 0x3f
je 0x30019da4
cmp eax, 0x5b
je 0x300195fd
cmp eax, 0x7b
je 0x30019cec
xor ebx, ebx
cmp dword [0x3009de74], ebx
jne 0x30019bdc
mov eax, dword [0x3009de84]
movzx ax, byte [eax + 5]
cmp word [ebp - 4], ax
je 0x30019b9c
cmp word [ebp - 4], 0x2d
jne 0x30019bdc
cmp dword [0x3009e094], ebx
mov eax, dword [esi]
je 0x30019bb2
push eax
push eax
call fcn.3008a38c
movzx eax, ax
jmp 0x30019bb5
movzx eax, byte [eax]
cmp eax, 0x30
jl 0x30019bdc
cmp dword [0x3009e094], ebx
mov eax, dword [esi]
je 0x30019bd0
push eax
push eax
call fcn.3008a38c
movzx eax, ax
jmp 0x30019bd3
movzx eax, byte [eax]
cmp eax, 0x39
jle 0x300199ea
push dword [ebp + 8]
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
push esi
mov ecx, edi
call fcn.300189bc
cmp eax, ebx
pop ecx
pop ecx
jne 0x30019b0f
cmp dword [ebp - 0x14], ebx
je 0x30019c60
cmp di, 0x30
jb 0x30019c0c
cmp di, 0x39
jbe 0x3001996a
cmp dword [0x3009e094], ebx
je 0x30019c1c
push edi
call fcn.3008a250
jmp 0x30019c1e
xor eax, eax
movzx edi, word [ebp - 4]
cmp eax, ebx
mov ebx, dword [sym.imp.USER32.dll_CharUpperA]
je 0x30019c30
mov eax, edi
jmp 0x30019c36
push edi
call ebx
movzx eax, al
cmp eax, 0x41
jl 0x30019c60
xor eax, eax
cmp dword [0x3009e094], eax
je 0x30019c4d
push dword [ebp - 4]
call fcn.3008a250
test eax, eax
jne 0x30019c57
push edi
call ebx
movzx edi, al
cmp edi, 0x46
jle 0x3001996a
mov edi, dword [ebp - 4]
lea eax, [edi - 0x30]
cmp ax, 9
jbe 0x300199ea
cmp dword [0x3009e094], 0
je 0x30019c81
push edi
call fcn.3008a250
jmp 0x30019c83
xor eax, eax
test eax, eax
jne 0x30019cdf
cmp dword [0x3009e094], eax
je 0x30019ca0
call fcn.3008a1dd
sub ax, 0x411
neg ax
sbb eax, eax
inc eax
jmp 0x30019ca2
xor eax, eax
test eax, eax
je 0x30019cb4
cmp di, 0xa0
jb 0x30019cb4
cmp di, 0xdf
jbe 0x30019cdf
push edi
call dword [sym.imp.USER32.dll_IsCharAlphaA]
test eax, eax
jne 0x30019cdf
mov eax, dword [0x3009de84]
movzx ax, byte [eax + 0x19]
xor ecx, ecx
cmp di, ax
setne cl
dec ecx
and ecx, 0xfffffff6
add ecx, 0x11
mov eax, ecx
jmp 0x30019b0f
mov ebx, dword [ebp + 0xc]
call fcn.30017f96
jmp 0x30019b0f
mov eax, dword [esi]
xor edi, edi
cmp dword [0x3009e094], edi
je 0x30019d04
push eax
push eax
call fcn.3008a38c
movzx eax, ax
jmp 0x30019d07
movzx eax, byte [eax]
cmp eax, 0x74
je 0x30019d2e
cmp dword [0x3009e094], edi
mov eax, dword [esi]
je 0x30019d22
push eax
push eax
call fcn.3008a38c
movzx eax, ax
jmp 0x30019d25
movzx eax, byte [eax]
cmp eax, 0x64
je 0x30019d2e
push 0x7d
jmp 0x30019d86
cmp dword [0x3009e094], edi
je 0x30019d43
push esi
push dword [esi]
call fcn.3008a3e8
movzx eax, ax
jmp 0x30019d4a
inc dword [esi]
mov eax, dword [esi]
movzx eax, byte [eax]
cmp eax, 0x73
jne 0x30019d51
inc dword [esi]
mov eax, dword [esi]
cmp byte [eax], 0x20
jne 0x30019d5b
inc eax
mov dword [esi], eax
cmp dword [0x3009e094], edi
je 0x30019d70
push esi
push dword [esi]
call fcn.3008a42f
movzx ecx, ax
jmp 0x30019d78
mov eax, dword [esi]
movzx ecx, byte [eax]
inc eax
mov dword [esi], eax
cmp ecx, 0x27
je 0x30019d84
push 0x11
jmp 0x30019303
push 0x27
mov ebx, dword [ebp + 0xc]
pop edi
push ebx
push edi
call fcn.30017ce0
cmp di, 0x27
pop ecx
pop ecx
jne 0x30019b0f
inc dword [esi]
jmp 0x30019b0f
push 0x13
jmp 0x30019303