Function at 0x1003d160
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
push ebx
mov ebx, dword [ebp + 0xc]
mov eax, ecx
push esi
push edi
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x18], edx
mov esi, dword [ebx]
push esi
push edx
push eax
mov dword [ebp - 4], eax
mov byte [ebp + 0xf], 0
call fcn.1001d150
mov al, byte [ebp + 0xf]
jmp 0x1003d190
test al, al
jne 0x1003dc2a
cmp esi, dword [ebx + 4]
jae 0x1003dc2a
mov eax, dword [ebp - 0x80]
add eax, esi
cmp eax, dword [ebp - 0x7c]
ja 0x1003d1ae
mov dword [ebp - 0x78], eax
lea edx, [ebp - 0x11]
lea ecx, [ebp - 0x80]
call fcn.100ae1f0
mov edi, eax
mov dword [ebp - 0x10], edi
test edi, edi
je 0x1003dc1e
mov ecx, dword [ebp - 4]
mov al, byte [esi + ecx]
mov dl, al
mov byte [ebp - 7], al
and dl, 7
cmp edi, 1
jne 0x1003d2a7
movzx eax, al
add eax, 0xffffffb8
cmp eax, 0x17
ja case.0x1003d8ab.25
movzx eax, byte [eax + 0x1003dc40]
jmp dword [eax*4 + 0x1003dc34]
mov eax, dword [ebx + 8]
cmp eax, 0xd
je 0x1003d21e
cmp eax, 0x1b
jne case.0x1003d8ab.25
cmp byte [ebx + 0x2f], dl
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
mov al, byte [ebp + 0xf]
add esi, edi
jmp 0x1003d190
cmp byte [ebx + 0x15], dl
jmp 0x1003d206
mov eax, dword [ebx + 8]
add eax, 0xffffffef
cmp eax, 0x29
ja case.0x1003d8ab.25
movzx eax, byte [eax + 0x1003dc70]
jmp dword [eax*4 + 0x1003dc58]
mov al, 1
mov dword [ebx + 0x80], esi
mov byte [ebx + 0x2d], dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp byte [ebx + 0x2d], dl
jne case.0x1003d8ab.25
mov al, 1
mov dword [ebx + 0x80], esi
mov byte [ebp + 0xf], al
add esi, edi
jmp 0x1003d190
mov al, 1
mov dword [ebx + 0x80], esi
mov byte [ebx + 0x40], dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
mov al, 1
mov dword [ebx + 0x80], esi
mov byte [ebx + 0x4c], dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
mov al, 1
mov dword [ebx + 0x80], esi
mov byte [ebx + 0x5c], dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
lea eax, [edi + esi]
mov dword [ebp - 0x1c], eax
dec eax
cmp eax, dword [ebp - 0x18]
ja 0x1003dc27
mov eax, dword [ebp - 4]
mov cl, byte [esi + ecx + 1]
mov ch, cl
mov byte [ebp - 6], cl
and ch, 7
mov dh, byte [eax + esi + 2]
movzx eax, byte [ebp - 7]
mov dword [ebp - 0xc], eax
add eax, 0xfffffffd
mov byte [ebp - 5], ch
cmp eax, 0xfc
ja case.0x1003d2e9.4
movzx eax, byte [eax + 0x1003dce0]
jmp dword [eax*4 + 0x1003dc9c]
mov eax, dword [ebp - 4]
movzx ecx, byte [esi + eax + 4]
movzx eax, byte [esi + eax + 3]
shl ecx, 8
add ecx, eax
mov eax, dword [ebp - 4]
shl ecx, 8
movzx eax, byte [esi + eax + 2]
add ecx, eax
mov eax, dword [ebp - 4]
shl ecx, 8
movzx eax, byte [esi + eax + 1]
add ecx, eax
lea eax, [esi + 6]
cmp eax, dword [ebx + 4]
jae case.0x1003d8ab.25
mov eax, dword [ebp - 4]
movzx eax, byte [esi + eax + 5]
sub dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x60
jne 0x1003d341
inc edi
add esi, edi
jmp 0x1003d188
mov eax, dword [ebx + 8]
dec eax
cmp eax, 0x3e
ja case.0x1003d8ab.25
movzx eax, byte [eax + 0x1003de20]
jmp dword [eax*4 + 0x1003dde0]
mov al, 1
mov dword [ebx + 0xc], ecx
mov byte [ebx + 0x15], dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp byte [ebx + 0x14], dl
jne case.0x1003d8ab.25
mov al, 1
mov dword [ebx + 0x18], ecx
mov byte [ebp + 0xf], al
add esi, edi
jmp 0x1003d190
cmp byte [ebx + 0x15], dl
jne case.0x1003d8ab.25
mov al, 1
mov dword [ebx + 0x1c], ecx
mov byte [ebp + 0xf], al
add esi, edi
jmp 0x1003d190
mov al, 1
mov dword [ebx + 0x34], ecx
mov byte [ebx + 0x2e], dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
mov al, 1
mov dword [ebx + 0x38], ecx
mov byte [ebx + 0x2f], dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp byte [ebx + 0x2f], dl
jne case.0x1003d8ab.25
cmp ecx, 0x30c4
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
mov al, 1
mov dword [ebx + 0x44], ecx
mov byte [ebx + 0x41], dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
mov al, 1
mov dword [ebx + 0x48], ecx
mov byte [ebx + 0x42], dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp dl, 1
jne case.0x1003d8ab.25
cmp ecx, 0xc1f
jne case.0x1003d8ab.25
mov al, dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
mov al, 1
mov dword [ebx + 0x50], ecx
mov byte [ebx + 0x4d], dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
mov al, 1
mov dword [ebx + 0x54], ecx
mov byte [ebx + 0x4e], dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp dl, 1
jne case.0x1003d8ab.25
cmp ecx, 0xc0a
jne case.0x1003d8ab.25
mov al, dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
mov al, 1
mov dword [ebx + 0x64], ecx
mov byte [ebx + 0x5d], dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
mov al, 1
mov dword [ebx + 0x68], ecx
mov byte [ebx + 0x5e], dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp dl, 1
jne case.0x1003d8ab.25
cmp ecx, 0xbf5
jne case.0x1003d8ab.25
mov al, dl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
lea eax, [ecx + 0x40]
cmp al, 7
ja 0x1003d56e
mov eax, dword [ebx + 8]
cmp eax, 2
je 0x1003d4ce
cmp eax, 0xa
jne case.0x1003d8ab.25
mov ecx, dword [ebp - 4]
add ecx, 2
add ecx, esi
call fcn.1001ca30
mov ecx, eax
lea eax, [esi + 0xc]
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebx + 4]
jae case.0x1003d8ab.25
mov eax, dword [ebp - 4]
cmp byte [esi + eax + 6], 0x81
jne 0x1003d527
movzx ecx, byte [esi + eax + 7]
movzx eax, byte [ebp - 6]
sub ecx, eax
cmp ecx, 0x28
jne 0x1003d524
mov ecx, dword [ebp - 4]
add ecx, 8
add ecx, esi
call fcn.1001ca30
mov ecx, dword [ebp - 0xc]
cmp ecx, eax
jne 0x1003d527
add edi, 6
add esi, edi
jmp 0x1003d188
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebx + 8]
sub eax, 2
je 0x1003d553
sub eax, 8
jne case.0x1003d8ab.25
mov al, byte [ebp - 5]
cmp byte [ebx + 0x15], al
jne case.0x1003d8ab.25
mov al, 1
mov dword [ebx + 0x20], ecx
mov byte [ebp + 0xf], al
add esi, edi
jmp 0x1003d190
mov al, byte [ebp - 5]
cmp byte [ebx + 0x15], al
jne case.0x1003d8ab.25
mov al, 1
mov dword [ebx + 0x10], ecx
mov byte [ebp + 0xf], al
add esi, edi
jmp 0x1003d190
lea eax, [ecx + 0x18]
cmp al, 7
ja 0x1003d5cd
mov eax, dword [ebx + 8]
cmp eax, 2
je 0x1003d582
cmp eax, 0xa
jne 0x1003d5c6
lea eax, [esi + 0xc]
cmp eax, dword [ebx + 4]
jae 0x1003d5c6
mov edx, dword [ebp - 4]
cmp byte [esi + edx + 6], 0x81
jne 0x1003d5c6
movzx eax, byte [esi + edx + 7]
movzx ecx, cl
sub ecx, eax
cmp ecx, 0x28
jne 0x1003d5c6
lea ecx, [edx + 8]
add ecx, esi
call fcn.1001ca30
mov ecx, dword [ebp - 4]
mov edi, eax
add ecx, 2
add ecx, esi
call fcn.1001ca30
cmp eax, edi
mov edi, dword [ebp - 0x10]
jne 0x1003d5c6
add edi, 6
add esi, edi
jmp 0x1003d188
cmp cl, 0x34
jne 0x1003d66a
cmp dh, 0x20
jb 0x1003d5e7
mov al, dh
sub al, 0x28
cmp al, 0x16
ja case.0x1003d8ab.25
mov ecx, dword [ebx + 8]
mov al, dh
shr al, 3
and dh, 7
and al, 7
cmp ecx, 0xc
je 0x1003d636
cmp ecx, 0x1a
jne case.0x1003d8ab.25
cmp byte [ebx + 0x2f], al
jne case.0x1003d8ab.25
cmp byte [ebx + 0x2e], dh
jne case.0x1003d8ab.25
mov ecx, dword [ebp - 4]
add ecx, 3
add ecx, esi
call fcn.1001ca30
mov dword [ebx + 0x3c], eax
mov al, 1
mov dword [ebx + 0x84], esi
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp byte [ebx + 0x15], dh
jne case.0x1003d8ab.25
cmp byte [ebx + 0x14], al
jne case.0x1003d8ab.25
mov ecx, dword [ebp - 4]
add ecx, 3
add ecx, esi
call fcn.1001ca30
mov dword [ebx + 0x28], eax
mov al, 1
mov dword [ebx + 0x84], esi
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp cl, 7
ja case.0x1003d8ab.25
cmp dword [ebx + 8], 0x33
jne case.0x1003d8ab.25
cmp byte [ebx + 0x4d], ch
jne case.0x1003d8ab.25
mov ecx, dword [ebp - 4]
add ecx, 2
add ecx, esi
call fcn.1001ca30
mov dword [ebx + 0x58], eax
mov al, 1
mov dword [ebx + 0x8c], esi
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
add cl, 0x40
cmp cl, 7
ja case.0x1003d8ab.25
mov eax, dword [ebx + 8]
add eax, 0xffffffee
cmp eax, 0x31
ja case.0x1003d8ab.25
movzx eax, byte [eax + 0x1003de7c]
jmp dword [eax*4 + 0x1003de60]
cmp byte [ebx + 0x2d], ch
jne case.0x1003d8ab.25
mov al, 1
mov byte [ebx + 0x30], dh
mov byte [ebp + 0xf], al
add esi, edi
jmp 0x1003d190
cmp byte [ebx + 0x41], ch
jne case.0x1003d8ab.25
cmp dh, 4
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp byte [ebx + 0x4c], ch
jne case.0x1003d8ab.25
mov al, 1
mov byte [ebx + 0x4f], dh
mov byte [ebp + 0xf], al
add esi, edi
jmp 0x1003d190
cmp byte [ebx + 0x4d], ch
jne case.0x1003d8ab.25
cmp dh, 4
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp byte [ebx + 0x5c], ch
jne case.0x1003d8ab.25
mov al, 1
mov byte [ebx + 0x60], dh
mov byte [ebp + 0xf], al
add esi, edi
jmp 0x1003d190
cmp byte [ebx + 0x5d], ch
jne case.0x1003d8ab.25
cmp dh, 4
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp dword [ebx + 8], 3
jne case.0x1003d8ab.25
cmp cl, 0xc0
jb case.0x1003d8ab.25
cmp byte [ebx + 0x15], ch
jne case.0x1003d8ab.25
shr cl, 3
mov al, 1
and cl, 7
mov byte [ebp + 0xf], al
mov byte [ebx + 0x14], cl
add esi, edi
jmp 0x1003d190
mov eax, dword [ebx + 8]
cmp eax, 4
je 0x1003d7b5
cmp eax, 6
jne case.0x1003d8ab.25
cmp cl, 0xc0
jb case.0x1003d8ab.25
cmp byte [ebx + 0x15], ch
jne case.0x1003d8ab.25
shr cl, 3
and cl, 7
cmp byte [ebx + 0x14], cl
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp cl, 0xc0
jb case.0x1003d8ab.25
mov eax, dword [ebx + 8]
shr cl, 3
add eax, 0xffffffe9
and cl, 7
cmp eax, 0x26
ja case.0x1003d8ab.25
movzx eax, byte [eax + 0x1003dec4]
jmp dword [eax*4 + 0x1003deb0]
cmp byte [ebx + 0x2f], ch
jne case.0x1003d8ab.25
cmp byte [ebx + 0x2e], cl
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp byte [ebx + 0x42], ch
jne case.0x1003d8ab.25
cmp byte [ebx + 0x41], cl
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp byte [ebx + 0x4e], ch
jne case.0x1003d8ab.25
cmp byte [ebx + 0x4d], cl
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp byte [ebx + 0x5e], ch
jne case.0x1003d8ab.25
cmp byte [ebx + 0x5d], cl
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp cl, 0xc0
jb case.0x1003d8ab.25
mov eax, dword [ebx + 8]
shr cl, 3
add eax, 0xffffffe8
and cl, 7
cmp eax, 0x26
ja case.0x1003d8ab.25
movzx eax, byte [eax + 0x1003df00]
jmp dword [eax*4 + 0x1003deec]
cmp byte [ebx + 0x2d], ch
jne case.0x1003d8ab.25
cmp byte [ebx + 0x2e], cl
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp byte [ebx + 0x40], ch
jne case.0x1003d8ab.25
cmp byte [ebx + 0x41], cl
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp byte [ebx + 0x4c], ch
jne case.0x1003d8ab.25
cmp byte [ebx + 0x4d], cl
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp byte [ebx + 0x5c], ch
jne case.0x1003d8ab.25
cmp byte [ebx + 0x5d], cl
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp cl, 0x20
jb 0x1003d93a
lea eax, [ecx - 0x28]
cmp al, 0x16
ja case.0x1003d8ab.25
mov eax, dword [ebx + 8]
shr cl, 3
and cl, 7
cmp eax, 0x24
je 0x1003d96f
cmp eax, 0x40
jne case.0x1003d8ab.25
cmp byte [ebx + 0x5d], ch
jne case.0x1003d8ab.25
mov al, 1
mov dword [ebx + 0x90], esi
mov byte [ebx + 0x5f], cl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp byte [ebx + 0x41], ch
jne case.0x1003d8ab.25
mov al, 1
mov dword [ebx + 0x88], esi
mov byte [ebx + 0x43], cl
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp cl, 0x20
jb 0x1003d99d
lea eax, [ecx - 0x28]
cmp al, 0x16
ja case.0x1003d8ab.25
mov eax, dword [ebx + 8]
shr cl, 3
and cl, 7
cmp eax, 0x26
je 0x1003d9d2
cmp eax, 0x42
jne case.0x1003d8ab.25
cmp byte [ebx + 0x5d], ch
jne case.0x1003d8ab.25
cmp byte [ebx + 0x5f], cl
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp byte [ebx + 0x41], ch
jne case.0x1003d8ab.25
cmp byte [ebx + 0x43], cl
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
add cl, 0x40
cmp cl, 7
ja case.0x1003d8ab.25
mov eax, dword [ebx + 8]
cmp eax, 0xb
je 0x1003da25
cmp eax, 0x41
jne case.0x1003d8ab.25
cmp byte [ebx + 0x5f], ch
jne case.0x1003d8ab.25
mov al, 1
mov byte [ebx + 0x6c], dh
mov byte [ebp + 0xf], al
add esi, edi
jmp 0x1003d190
cmp byte [ebx + 0x14], ch
jne case.0x1003d8ab.25
mov eax, dword [ebx + 0x18]
lea ecx, [ebp + 0xc]
mov dl, dh
mov dword [ebp + 0xc], eax
call fcn.1001ce00
mov dword [ebx + 0x70], eax
add esi, edi
mov al, 1
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp cl, 0x84
jne case.0x1003d8ab.25
mov eax, dword [ebx + 8]
cmp eax, 5
je 0x1003da67
cmp eax, 7
jne case.0x1003d8ab.25
mov edx, dword [ebp - 4]
add edx, esi
movzx ecx, byte [edx + 5]
movzx eax, byte [edx + 4]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 3]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 8
add ecx, eax
shr ecx, 0x1f
test cl, 1
je case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
mov eax, dword [ebx + 8]
cmp eax, 0xe
je 0x1003dab4
cmp eax, 0x1c
jne case.0x1003d8ab.25
test cl, cl
jns case.0x1003d8ab.25
not cl
inc cl
cmp cl, 0x60
ja case.0x1003d8ab.25
movzx eax, cl
mov ecx, esi
sub ecx, eax
add ecx, 2
cmp ecx, dword [ebx + 0x84]
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
cmp dword [ebx + 8], 0x25
jne case.0x1003d8ab.25
add cl, 0x30
cmp cl, 7
ja case.0x1003d8ab.25
cmp byte [ebx + 0x43], ch
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
test cl, cl
jns case.0x1003d8ab.25
mov eax, dword [ebx + 8]
not cl
inc cl
cmp eax, 0x28
je 0x1003db7c
cmp eax, 0x35
je 0x1003db5a
cmp eax, 0x44
jne case.0x1003d8ab.25
movzx eax, cl
mov ecx, esi
sub ecx, eax
add ecx, 2
cmp ecx, dword [ebx + 0x90]
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
movzx eax, cl
mov ecx, esi
sub ecx, eax
add ecx, 2
cmp ecx, dword [ebx + 0x8c]
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
movzx eax, cl
mov ecx, esi
sub ecx, eax
add ecx, 2
cmp ecx, dword [ebx + 0x88]
jne case.0x1003d8ab.25
mov al, 1
add esi, edi
mov byte [ebp + 0xf], al
jmp 0x1003d190
lea eax, [ecx + 0x20]
cmp al, 7
ja 0x1003d5c6
cmp cl, 0xe4
je 0x1003d5c6
cmp dword [ebx + 8], 0xf
jne 0x1003d5c6
cmp byte [ebx + 0x14], ch
je 0x1003dc10
add esi, edi
jmp 0x1003d188
mov eax, dword [ebx + 8]
add eax, 0xfffffff0
cmp eax, 0x29
ja case.0x1003d2e9.4
movzx eax, byte [eax + 0x1003df30]
jmp dword [eax*4 + 0x1003df28]
test cl, cl
jne case.0x1003d2e9.4
test dh, dh
jne case.0x1003d2e9.4
mov ecx, dword [ebp - 4]
cmp byte [esi + ecx + 3], dh
jne case.0x1003d2e9.4
cmp byte [esi + ecx + 4], dh
jne case.0x1003d2e9.4
mov esi, dword [ebp - 0x1c]
mov al, 1
mov byte [ebp + 0xf], al
jmp 0x1003d190
mov al, byte [ebp + 0xf]
mov esi, dword [ebp - 0x1c]
jmp 0x1003d190
lea eax, [edi + esi]
mov dword [ebx], eax
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [ebp + 0xf]
pop edi
mov dword [ebx], esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret