Function at 0x10090150
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x14
mov ecx, dword [0x100ba3c4]
mov eax, dword [0x100ba3ac]
push ebx
push ebp
movzx ebp, word [0x100ba5e2]
add ebp, ecx
test eax, eax
push esi
push edi
mov dword [0x100ba438], 1
mov dword [esp + 0x18], ebp
je 0x1009061f
mov ebx, dword [esp + 0x2c]
cmp ebx, dword [0x100ba608]
jge 0x10090563
mov edi, dword [esp + 0x28]
jmp 0x100901a0
mov ebp, dword [esp + 0x18]
jmp 0x100901a0
mov ecx, dword [edi + 4]
lea eax, [ebx + ebx*4]
mov edx, dword [ecx + eax*4 + 8]
lea eax, [ecx + eax*4]
mov ecx, dword [edi + 0x14]
lea ecx, [edx + ecx + 1]
movzx edx, byte [0x100ba5bc]
add edx, 0xffffffd2
xor esi, esi
cmp edx, 0x4a
ja case.0x100901d0.47
movzx edx, byte [edx + 0x10090ba0]
jmp dword [edx*4 + 0x10090b04]
cmp byte [ecx], 2
jne case.0x100901d0.47
cmp byte [ecx + 3], 0x73
jne 0x100901ed
mov ecx, dword [eax + 0x10]
xor edx, edx
jmp 0x100901f2
mov edx, 4
mov al, byte [ebp]
test al, al
je 0x1009021c
lea esp, [esp]
movzx ebp, dx
cmp al, byte [ecx + ebp]
jne case.0x100901d0.47
mov ebp, dword [esp + 0x18]
inc esi
movzx eax, si
mov al, byte [eax + ebp]
inc edx
test al, al
jne 0x10090200
movzx edx, dx
cmp byte [edx + ecx], 0
jmp 0x10090553
cmp byte [ecx], 1
jmp 0x10090553
cmp byte [ecx], 2
jmp 0x10090553
cmp byte [ecx], 3
jmp 0x10090553
cmp byte [ecx], 3
jne case.0x100901d0.47
mov al, byte [ecx + 2]
and al, 3
cmp al, 1
je case.0x100901d0.47
mov cl, byte [ecx + 3]
and cl, 3
cmp cl, 1
jne 0x1009056d
jmp case.0x100901d0.47
cmp byte [ecx], 4
jmp 0x10090553
cmp byte [ecx], 5
jmp 0x10090553
cmp byte [ecx], 6
jmp 0x10090553
cmp byte [ecx], 7
jmp 0x10090553
cmp byte [ecx], 8
jne case.0x100901d0.47
cmp byte [ecx + 4], 0x70
je case.0x100901d0.47
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x63
jne 0x1009056d
cmp byte [eax + 1], 0x68
jne 0x1009056d
mov cl, byte [eax + 3]
test cl, cl
jne 0x1009056d
jmp case.0x100901d0.47
mov al, byte [ecx]
cmp al, 3
je 0x100902d1
cmp al, 4
jne case.0x100901d0.47
mov dl, byte [ecx + 2]
and dl, 0xf0
cmp dl, 0x40
jmp 0x10090553
mov al, byte [ecx]
cmp al, 3
je 0x100902ed
cmp al, 4
jne case.0x100901d0.47
cmp byte [ecx + 2], 0x44
jmp 0x10090553
cmp byte [ecx], 3
jne 0x1009056d
test byte [ecx + 2], 1
jmp 0x10090553
mov al, byte [ecx]
cmp al, 3
je 0x10090316
cmp al, 4
jne case.0x100901d0.47
mov al, byte [ecx + 2]
and al, 0xf0
cmp al, 0x80
jmp 0x10090553
mov cl, byte [ecx]
cmp cl, 5
je 0x1009056d
cmp cl, 8
jmp 0x10090553
mov al, byte [ecx]
cmp al, 1
je 0x1009056d
cmp al, 2
jne case.0x100901d0.47
cmp byte [ecx + 3], 0x61
jmp 0x10090553
cmp byte [ecx], 5
jne case.0x100901d0.47
cmp byte [ecx + 7], 0x46
jmp 0x10090553
cmp byte [ecx], 4
jne case.0x100901d0.47
cmp byte [ecx + 3], 0x70
jne case.0x100901d0.47
mov ecx, dword [eax + 0x10]
cmp byte [ecx], 0x6c
jne 0x1009056d
jmp case.0x100901d0.47
cmp byte [ecx], 4
jne case.0x100901d0.47
cmp byte [ecx + 3], 0x70
jmp 0x10090553
cmp byte [ecx], 5
jne case.0x100901d0.47
cmp byte [ecx + 8], 6
jae 0x1009056d
jmp case.0x100901d0.47
cmp byte [ecx], 8
jne case.0x100901d0.47
cmp byte [ecx + 4], 0x70
jmp 0x10090553
cmp byte [ecx], 8
jne case.0x100901d0.47
cmp byte [ecx + 4], 0x70
jne case.0x100901d0.47
mov edx, dword [eax + 0x10]
cmp byte [edx], 0x73
jne 0x1009056d
jmp case.0x100901d0.47
mov cl, byte [ecx]
cmp cl, 3
je 0x1009056d
cmp cl, 4
jmp 0x10090553
cmp byte [ecx], 5
jne case.0x100901d0.47
test byte [ecx + 5], 0x10
jne 0x1009056d
jmp case.0x100901d0.47
mov al, byte [ecx]
cmp al, 5
jne 0x10090421
cmp byte [ecx + 6], 0x56
je 0x1009056d
cmp al, 3
jne 0x10090434
mov dl, byte [ecx + 1]
and dl, 0x60
cmp dl, 0x60
je 0x1009056d
cmp al, 4
jne case.0x100901d0.47
mov al, byte [ecx + 1]
and al, 0x60
cmp al, 0x60
jmp 0x10090553
mov al, byte [ecx]
cmp al, 3
je 0x10090456
cmp al, 4
jne case.0x100901d0.47
mov cl, byte [ecx + 1]
and cl, 0x60
cmp cl, 0x60
jmp 0x10090553
cmp byte [ecx], 5
jne case.0x100901d0.47
cmp byte [ecx + 6], 0x56
jmp 0x10090553
cmp byte [ecx], 5
jne case.0x100901d0.47
cmp byte [ecx + 7], 0x43
jmp 0x10090553
cmp byte [ecx], 3
jne case.0x100901d0.47
mov dl, byte [ecx + 2]
and dl, 3
cmp dl, 1
jne case.0x100901d0.47
mov al, byte [ecx + 3]
and al, 3
cmp al, 3
jmp 0x10090553
cmp byte [ecx], 5
jne case.0x100901d0.47
cmp byte [ecx + 9], 0x53
jne case.0x100901d0.47
lea eax, [ecx + 0xa]
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x100904c5
sub eax, esi
movzx ecx, byte [eax + ecx + 0xb]
push ecx
call fcn.1009d52e
add esp, 4
test eax, eax
jne 0x1009056d
jmp case.0x100901d0.47
cmp byte [ecx], 5
jne case.0x100901d0.47
cmp byte [ecx + 2], 0x33
ja 0x1009056d
jmp case.0x100901d0.47
cmp byte [ecx], 4
jne case.0x100901d0.47
mov dl, byte [ecx + 2]
and dl, 3
cmp dl, 1
jmp 0x10090553
cmp byte [ecx], 3
jne case.0x100901d0.47
test byte [ecx + 1], 4
je case.0x100901d0.47
test byte [ecx + 4], 1
jmp 0x10090553
mov al, byte [ecx]
cmp al, 3
je 0x1009051e
cmp al, 4
jne case.0x100901d0.47
mov al, byte [ecx + 2]
and al, 0xc
cmp al, 8
jmp 0x10090553
cmp byte [ecx], 2
jne case.0x100901d0.47
cmp byte [ecx + 3], 0x61
jmp 0x10090553
test ebx, ebx
jne case.0x100901d0.47
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x14
ret
mov cl, byte [ecx]
cmp cl, 6
je 0x1009056d
cmp cl, 9
je 0x1009056d
mov ecx, dword [edi + 0x34]
dec ecx
cmp ebx, ecx
je 0x1009056d
mov eax, dword [0x100ba608]
inc ebx
cmp ebx, eax
jl 0x10090197
mov dword [0x100ba438], 0
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x14
ret
mov edx, dword [edi + 4]
mov ebp, dword [0x100b9d58]
xor esi, esi
mov dword [esp + 0x1c], edx
movzx ecx, word [ebp + 0x3c]
movzx eax, si
add eax, ecx
movsx eax, word [eax + ebp]
cmp ebx, eax
jle 0x100905b0
cmp eax, 0xffffffff
je 0x10090ad4
add esi, 2
movzx edx, si
add edx, ecx
movsx eax, word [edx + ebp]
cmp ebx, eax
jg 0x10090597
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov edi, dword [edx + ecx*4 + 0x10]
cmp byte [edi], 5
mov ebx, eax
mov dword [esp + 0x2c], ebx
je 0x100905cb
add esi, 2
jmp 0x10090586
mov edx, dword [esp + 0x18]
mov dl, byte [edx]
test dl, dl
mov ecx, 0xa
je 0x100905fe
lea ebx, [ebx]
movzx ebx, cx
cmp dl, byte [ebx + edi]
jne 0x10090613
mov ebx, dword [esp + 0x18]
inc ecx
lea edx, [ecx - 0xa]
movzx edx, dx
mov dl, byte [edx + ebx]
test dl, dl
jne 0x100905e0
mov ebx, dword [esp + 0x2c]
movzx ecx, cx
cmp byte [ecx + edi], 0
je 0x10090af9
add esi, 2
jmp 0x10090586
mov ebx, dword [esp + 0x2c]
add esi, 2
jmp 0x10090586
mov al, byte [ebp]
sub al, 0x61
movzx eax, al
shl eax, 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], eax
jmp 0x10090640
mov edx, dword [esp + 0x20]
mov ecx, dword [0x100b9d58]
movzx eax, word [edx + ecx]
mov esi, dword [esp + 0x10]
movzx edx, si
add edx, eax
movsx ebp, word [edx + ecx]
mov edx, dword [esp + 0x2c]
cmp edx, ebp
mov dword [esp + 0x14], ebp
jle 0x10090688
cmp ebp, 0xffffffff
je 0x10090ad4
add esi, 2
movzx edi, si
add edi, eax
movsx ebp, word [edi + ecx]
cmp edx, ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebp
jg 0x10090667
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x18]
lea eax, [ebp + ebp*4]
shl eax, 2
mov esi, dword [ecx + eax + 0x10]
mov dword [esp + 0x1c], eax
mov al, byte [edx]
xor edi, edi
xor ebx, ebx
test al, al
mov dword [esp + 0x2c], ebp
je 0x10090902
mov edx, dword [esp + 0x18]
movzx eax, bx
mov dl, byte [eax + edx]
movzx ecx, di
mov al, byte [ecx + esi]
inc ebx
cmp dl, al
je 0x1009085b
movzx edx, dl
sub edx, 0x2a
cmp edx, 0x54
ja case.0x100906e3.43
movzx edx, byte [edx + 0x10090c00]
jmp dword [edx*4 + 0x10090bec]
cmp al, 0x20
je 0x10090947
test al, al
je 0x10090947
inc edi
jmp case.0x1009072d.58
test al, al
je case.0x1009072d.58
inc edi
jmp case.0x1009072d.58
mov ebp, dword [esp + 0x18]
movzx edx, bx
movzx edx, byte [edx + ebp]
sub edx, 0x39
inc ebx
cmp edx, 0x3f
ja case.0x1009072d.58
movzx edx, byte [edx + 0x10090ca8]
jmp dword [edx*4 + 0x10090c58]
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x20]
add edx, ecx
mov al, byte [edx + esi]
jmp 0x1009084b
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x20]
add edx, ecx
mov al, byte [edx + esi]
cmp al, 0x41
jb 0x10090947
cmp al, 0x5a
jmp 0x10090855
movzx eax, al
mov cl, byte [eax + 0x100b8d50]
test cl, cl
je 0x10090947
inc edi
jmp case.0x1009072d.58
movzx edx, al
cmp byte [edx + 0x100b8d50], 0
jne 0x10090947
cmp al, 0x68
je 0x10090947
cmp al, 0x6a
je 0x10090947
cmp al, 0x78
je 0x10090947
cmp al, 0x79
je 0x10090947
cmp al, 0x7a
je 0x10090947
cmp al, 0x70
jne 0x100907c9
mov dl, byte [ecx + esi + 1]
cmp dl, 0x73
je 0x10090947
cmp dl, 0x6e
je 0x10090947
cmp al, 0x67
jne 0x100907d8
cmp byte [ecx + esi + 1], 0x6e
je 0x10090947
cmp al, 0x73
jne 0x100907f7
movzx eax, byte [ecx + esi + 1]
mov al, byte [eax + 0x100b8d50]
cmp al, 1
jb 0x10090947
cmp al, 3
ja 0x10090947
inc edi
movzx ecx, di
movzx edx, byte [ecx + esi]
mov al, byte [edx + 0x100b8d50]
test al, al
je 0x10090947
inc edi
jmp case.0x1009072d.58
movzx ecx, al
mov cl, byte [ecx + 0x100b8d50]
cmp cl, 1
jb 0x1009084b
cmp cl, 3
jbe 0x10090947
jmp 0x1009084b
movzx edx, al
mov cl, byte [edx + 0x100b8d50]
cmp cl, 1
jb 0x10090843
cmp cl, 3
jbe 0x10090947
cmp al, 0x68
je 0x10090947
cmp al, 0x61
jb 0x10090947
cmp al, 0x7a
ja 0x10090947
inc edi
jmp case.0x1009072d.58
cmp al, 0x68
je 0x10090892
cmp al, 0x61
je 0x10090892
cmp al, 0x65
je 0x10090892
cmp al, 0x6f
je 0x10090892
cmp al, 0x69
jne 0x1009088a
movzx ecx, byte [ecx + esi + 1]
mov cl, byte [ecx + 0x100b8d50]
cmp cl, 1
jb 0x10090892
cmp cl, 3
ja 0x10090892
cmp al, 0x75
jne 0x10090947
inc edi
jmp case.0x1009072d.58
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x20]
add eax, ecx
lea ecx, [eax + esi]
mov al, byte [ecx]
cmp al, 0x68
je 0x100908d1
cmp al, 0x61
je 0x100908d1
cmp al, 0x65
je 0x100908d1
cmp al, 0x6f
je 0x100908d1
cmp al, 0x75
je 0x100908d1
cmp al, 0x69
jne 0x10090947
movzx ecx, byte [ecx + 1]
mov al, byte [ecx + 0x100b8d50]
cmp al, 1
jb 0x100908d1
cmp al, 3
jbe 0x10090947
inc edi
jmp case.0x1009072d.58
cmp al, 0x30
jb 0x10090947
cmp al, 0x39
jmp 0x10090855
mov ecx, dword [esp + 0x18]
movzx edx, bx
inc edi
cmp byte [edx + ecx - 1], al
jne 0x10090947
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
movzx edx, bx
cmp byte [edx + eax], 0
jne 0x100906b4
movzx ecx, di
cmp byte [ecx + esi], 0
je case.0x100906e3.42
add dword [esp + 0x10], 2
jmp 0x10090640
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + edx + 0x10]
mov edx, dword [ecx + 0x20]
movzx ecx, di
add eax, edx
mov al, byte [eax + ecx]
cmp al, 0x61
jb 0x1009093f
cmp al, 0x7a
jbe 0x10090aeb
cmp al, 0xe8
je 0x10090aeb
add dword [esp + 0x10], 2
jmp 0x10090640
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + edx + 0x10]
mov edx, dword [ecx + 0x20]
movzx ecx, di
add eax, edx
mov al, byte [eax + ecx]
cmp al, 0x41
jb 0x10090977
cmp al, 0x5a
jbe 0x10090aeb
add dword [esp + 0x10], 2
jmp 0x10090640
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 4]
mov esi, dword [ecx + 0x20]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + edx + 0x10]
movzx ecx, di
add eax, esi
add eax, ecx
mov cl, byte [eax]
cmp cl, 0x41
jb 0x100909b5
cmp cl, 0x5a
ja 0x100909b5
mov al, byte [eax + 1]
cmp al, 0x61
jb 0x100909b5
cmp al, 0x7a
jbe 0x10090aeb
add dword [esp + 0x10], 2
jmp 0x10090640
movzx edx, di
movzx eax, byte [edx + esi]
push eax
call fcn.1009d650
add esp, 4
test eax, eax
jne 0x10090aeb
add dword [esp + 0x10], 2
jmp 0x10090640
movzx ecx, di
mov al, byte [ecx + esi]
cmp al, 0x20
je 0x10090aeb
cmp al, 0xa
je 0x10090aeb
cmp al, 0x30
jb 0x10090a03
cmp al, 0x39
jbe 0x10090aeb
add dword [esp + 0x10], 2
jmp 0x10090640
movzx edx, di
cmp byte [edx + esi], 0xa
je 0x10090aeb
add dword [esp + 0x10], 2
jmp 0x10090640
movzx eax, di
mov al, byte [eax + esi]
cmp al, 0x20
je 0x10090aeb
cmp al, 0x2c
je 0x10090aeb
cmp al, 0x2e
je 0x10090aeb
cmp al, 0x3b
je 0x10090aeb
add dword [esp + 0x10], 2
jmp 0x10090640
movzx ecx, di
cmp byte [ecx + esi], 0x20
je 0x10090aeb
add dword [esp + 0x10], 2
jmp 0x10090640
movzx edx, di
mov al, byte [edx + esi]
cmp al, 0x78
lea ecx, [edx + esi]
jb 0x10090a7c
cmp al, 0x7a
jbe 0x10090aeb
cmp al, 0x6a
je 0x10090aeb
cmp al, 0x73
jne 0x10090a99
mov dl, byte [ecx + 1]
movzx esi, dl
mov bl, byte [esi + 0x100b8d50]
test bl, bl
jne 0x10090a99
cmp dl, 0x79
jne 0x10090aeb
cmp al, 0x70
jne 0x10090aaa
mov dl, byte [ecx + 1]
cmp dl, 0x73
je 0x10090aeb
cmp dl, 0x6e
je 0x10090aeb
cmp al, 0x67
jne 0x10090ab4
cmp byte [ecx + 1], 0x6e
je 0x10090aeb
cmp al, 0x69
jne 0x10090aca
movzx eax, byte [ecx + 1]
mov al, byte [eax + 0x100b8d50]
cmp al, 1
jb 0x10090aca
cmp al, 3
jbe 0x10090aeb
add dword [esp + 0x10], 2
jmp 0x10090640
mov eax, dword [0x100ba608]
pop edi
pop esi
pop ebp
mov dword [0x100ba438], 0
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret