Function at 0x10036000
Capabilities:
Parse credit card information

Disassembly:
push ebx
mov ebx, dword [esp + 0xc]
push ebp
mov ebp, dword [esp + 0xc]
push edi
xor edi, edi
cmp ebx, edi
jne 0x10036018
pop edi
pop ebp
or eax, 0xffffffff
pop ebx
ret
push esi
mov esi, dword [ebx]
jmp 0x10036020
mov al, byte [esi]
cmp al, 0x61
jl 0x1003602e
cmp al, 0x7a
jle 0x100360d0
cmp al, 0x41
jl 0x1003603a
cmp al, 0x5a
jle 0x100360d0
cmp al, 0x30
jl 0x10036046
cmp al, 0x39
jle 0x100360d0
cmp al, 0x2d
je 0x100360d0
cmp al, 0x5f
je 0x100360d0
cmp al, 0x2e
je 0x100360d0
cmp al, 0x21
je 0x100360d0
cmp al, 0x7e
je 0x100360d0
cmp al, 0x2a
je 0x100360d0
cmp al, 0x27
je 0x100360d0
cmp al, 0x28
je 0x100360d0
cmp al, 0x29
je 0x100360d0
cmp al, 0x25
jne 0x100360b4
mov cl, byte [esi + 1]
cmp cl, 0x30
jl 0x1003607f
cmp cl, 0x39
jle 0x10036093
cmp cl, 0x61
jl 0x10036089
cmp cl, 0x66
jle 0x10036093
cmp cl, 0x41
jl 0x100360b4
cmp cl, 0x46
jg 0x100360b4
mov cl, byte [esi + 2]
cmp cl, 0x30
jl 0x100360a0
cmp cl, 0x39
jle 0x100360d0
cmp cl, 0x61
jl 0x100360aa
cmp cl, 0x66
jle 0x100360d0
cmp cl, 0x41
jl 0x100360b4
cmp cl, 0x46
jle 0x100360d0
cmp al, 0x3b
je 0x100360d0
cmp al, 0x3a
je 0x100360d0
cmp al, 0x26
je 0x100360d0
cmp al, 0x3d
je 0x100360d0
cmp al, 0x2b
je 0x100360d0
cmp al, 0x24
je 0x100360d0
cmp al, 0x2c
jne 0x100360e2
cmp al, 0x25
jne 0x100360dc
add esi, 3
jmp 0x10036020
inc esi
jmp 0x10036020
cmp byte [esi], 0x40
jne 0x1003612d
cmp ebp, edi
je 0x1003612a
mov eax, dword [ebp + 0x10]
cmp eax, edi
je 0x100360fc
push eax
call dword [0x1013f8a8]
add esp, 4
test byte [ebp + 0x24], 2
mov eax, dword [ebx]
je 0x10036118
mov ecx, esi
sub ecx, eax
push ecx
push eax
call fcn.1002b2e0
add esp, 8
mov dword [ebp + 0x18], eax
inc esi
jmp 0x10036147
mov edx, esi
push edi
sub edx, eax
push edx
push eax
call fcn.100356e0
add esp, 0xc
mov dword [ebp + 0x10], eax
inc esi
jmp 0x10036147
cmp ebp, edi
je 0x10036145
mov eax, dword [ebp + 0x10]
cmp eax, edi
je 0x10036142
push eax
call dword [0x1013f8a8]
add esp, 4
mov dword [ebp + 0x10], edi
mov esi, dword [ebx]
mov al, byte [esi]
cmp al, 0x2f
mov ebx, esi
jne 0x10036189
cmp ebp, edi
je 0x10036427
mov eax, dword [ebp + 8]
cmp eax, edi
je 0x10036168
push eax
call dword [0x1013f8a8]
add esp, 4
mov eax, dword [ebp + 0xc]
cmp eax, edi
mov dword [ebp + 8], edi
je 0x1003617c
push eax
call dword [0x1013f8a8]
add esp, 4
pop esi
mov dword [ebp + 0xc], edi
mov dword [ebp + 0x14], edi
pop edi
pop ebp
xor eax, eax
pop ebx
ret
cmp al, 0x5b
jne 0x1003623c
lea ebp, [esi + 1]
xor ecx, ecx
mov esi, ebp
xor edi, edi
lea ebx, [ebx]
cmp byte [esi], 0x3a
jne 0x100361c0
test ecx, ecx
jne 0x10036232
test edi, edi
jne 0x100361b9
mov al, byte [esi + 1]
inc esi
cmp al, 0x3a
jne 0x10036232
mov ecx, 1
jmp 0x100361e7
mov al, byte [esi]
cmp al, 0x30
jl 0x100361ca
cmp al, 0x39
jle 0x100361da
cmp al, 0x61
jl 0x100361d2
cmp al, 0x66
jle 0x100361da
cmp al, 0x41
jl 0x100361dd
cmp al, 0x46
jg 0x100361dd
inc esi
jmp 0x100361c0
cmp edi, 7
je 0x100361e8
cmp byte [esi], 0x3a
jne 0x100361ee
inc esi
inc edi
cmp edi, 8
jl 0x100361a0
test ecx, ecx
jne 0x100361f7
cmp edi, 8
jne 0x10036232
cmp byte [esi], 0x5d
jne 0x10036232
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1003622b
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10036215
push eax
call dword [0x1013f8a8]
add esp, 4
mov eax, esi
sub eax, ebx
dec eax
push eax
push ebp
call fcn.1002b2e0
mov ecx, dword [esp + 0x1c]
add esp, 8
mov dword [ecx + 0xc], eax
mov ebp, dword [esp + 0x14]
inc esi
jmp 0x1003626d
pop esi
pop edi
pop ebp
mov eax, 3
pop ebx
ret
xor edi, edi
mov edi, edi
mov al, byte [esi]
cmp al, 0x2e
je 0x10036232
cmp al, 0x30
jl 0x1003625c
lea ebx, [ebx]
cmp al, 0x39
jg 0x1003625c
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jge 0x10036250
cmp edi, 3
je 0x10036267
cmp byte [esi], 0x2e
jne 0x1003626d
inc esi
inc edi
cmp edi, 4
jl 0x10036240
cmp byte [ebx], 0x5b
je 0x10036384
cmp edi, 4
jl 0x1003629c
mov al, byte [esi]
cmp al, 0x2e
jne 0x10036284
inc esi
jmp 0x1003629c
cmp al, 0x61
jl 0x1003628c
cmp al, 0x7a
jle 0x1003629c
cmp al, 0x41
jl 0x10036384
cmp al, 0x5a
jg 0x10036384
mov al, byte [esi]
cmp al, 0x61
jl 0x100362a6
cmp al, 0x7a
jle 0x100362c0
cmp al, 0x41
jl 0x100362ae
cmp al, 0x5a
jle 0x100362c0
cmp al, 0x30
jl 0x1003637a
cmp al, 0x39
jg 0x1003637a
mov edi, edi
mov al, byte [esi + 1]
inc esi
cmp al, 0x61
jl 0x100362cc
cmp al, 0x7a
jle 0x100362c0
mov al, byte [esi]
cmp al, 0x41
jl 0x100362d6
cmp al, 0x5a
jle 0x100362c0
cmp al, 0x30
jl 0x100362de
cmp al, 0x39
jle 0x100362c0
cmp al, 0x2d
jne 0x100362ed
mov al, byte [esi - 1]
dec esi
cmp al, 0x2e
je 0x10036300
inc esi
jmp 0x100362c0
cmp al, 0x2e
jne 0x1003631e
mov al, byte [esi - 1]
dec esi
cmp al, 0x2d
je 0x1003630a
cmp al, 0x2e
je 0x10036314
inc esi
jmp 0x100362c0
pop esi
pop edi
pop ebp
mov eax, 5
pop ebx
ret
pop esi
pop edi
pop ebp
mov eax, 6
pop ebx
ret
pop esi
pop edi
pop ebp
mov eax, 7
pop ebx
ret
mov dl, byte [esi - 1]
cmp dl, 0x2e
lea eax, [esi - 1]
mov ecx, esi
jne 0x10036330
mov ecx, eax
lea ecx, [ecx]
dec ecx
cmp ecx, ebx
jb 0x1003634f
mov al, byte [ecx]
cmp al, 0x61
jl 0x1003633f
cmp al, 0x7a
jle 0x10036330
cmp al, 0x41
jl 0x10036347
cmp al, 0x5a
jle 0x10036330
cmp al, 0x30
jl 0x1003634f
cmp al, 0x39
jle 0x10036330
inc ecx
cmp ecx, ebx
je 0x1003635a
cmp byte [ecx - 1], 0x2e
jne 0x10036384
mov cl, byte [ecx]
cmp cl, 0x61
jl 0x10036366
cmp cl, 0x7a
jle 0x10036384
cmp cl, 0x41
jl 0x10036370
cmp cl, 0x5a
jle 0x10036384
pop esi
pop edi
pop ebp
mov eax, 8
pop ebx
ret
pop esi
pop edi
pop ebp
mov eax, 4
pop ebx
ret
test ebp, ebp
je 0x100363df
mov eax, dword [ebp + 8]
test eax, eax
je 0x10036399
push eax
call dword [0x1013f8a8]
add esp, 4
mov dword [ebp + 8], 0
cmp byte [ebx], 0x5b
je 0x100363df
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100363b6
push eax
call dword [0x1013f8a8]
add esp, 4
test byte [ebp + 0x24], 2
je 0x100363cc
mov edx, esi
sub edx, ebx
push edx
push ebx
call fcn.1002b2e0
add esp, 8
jmp 0x100363dc
mov eax, esi
push 0
sub eax, ebx
push eax
push ebx
call fcn.100356e0
add esp, 0xc
mov dword [ebp + 0xc], eax
cmp byte [esi], 0x3a
jne 0x10036421
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl 0x10036421
cmp al, 0x39
jg 0x10036421
test ebp, ebp
je 0x100363fb
mov dword [ebp + 0x14], 0
mov al, byte [esi]
cmp al, 0x30
jl 0x10036421
cmp al, 0x39
jg 0x10036421
test ebp, ebp
je 0x10036419
mov ecx, dword [ebp + 0x14]
movsx edx, al
lea ecx, [ecx + ecx*4]
lea eax, [edx + ecx*2 - 0x30]
mov dword [ebp + 0x14], eax
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jge 0x10036401
mov ecx, dword [esp + 0x18]
mov dword [ecx], esi
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
ret