Function at 0x600bad64
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, dword [esi + 0x10]
mov bx, word [eax]
lea edi, [eax + 2]
movzx eax, bx
cmp eax, 0x5b
mov dword [esi + 0x10], edi
jg 0x600baf0a
je 0x600badc1
cmp eax, 0x24
je 0x600badba
cmp eax, 0x29
jle 0x600bb197
cmp eax, 0x2b
jle 0x600baf37
cmp eax, 0x2e
je 0x600badb3
cmp eax, 0x3f
je 0x600baf37
jmp 0x600bb197
push 6
jmp 0x600bb223
push 3
jmp 0x600bafcb
push 0x16
push esi
call fcn.600ba780
pop ecx
mov dword [esi + 0x24], eax
test eax, eax
pop ecx
je 0x600baf4e
mov edx, dword [esi + 0x10]
mov ecx, edx
mov dword [ebp - 8], edx
sub ecx, dword [esi + 8]
sar ecx, 1
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0xc]
jmp 0x600bae09
mov eax, dword [esi + 0x10]
mov di, word [eax]
cmp di, 0x5c
jne 0x600badff
add eax, 2
mov dword [esi + 0x10], eax
jmp 0x600bae05
cmp di, 0x5d
je 0x600bae16
add dword [esi + 0x10], 2
cmp dword [esi + 0x10], ecx
jne 0x600badeb
push edx
push 0x37
jmp 0x600baf3f
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x24]
sub eax, edx
sar eax, 1
mov dword [ecx + 0x10], eax
xor eax, eax
lea ecx, [esi + 0x2c]
cmp dword [ecx], 0
je 0x600baec1
mov ebx, dword [esi + 0x24]
mov edi, dword [ecx + 4]
cmp edi, dword [ebx + 0x10]
jne 0x600bae6a
mov edi, dword [ecx]
and dword [ebp - 4], 0
mov dword [ebp + 8], edi
sub dword [ebp + 8], edx
mov edi, dword [ebp - 4]
cmp edi, dword [ecx + 4]
je 0x600baedf
mov edi, dword [ebp + 8]
mov di, word [edi + edx]
cmp di, word [edx]
jne 0x600bae67
inc dword [ebp - 4]
inc edx
inc edx
jmp 0x600bae48
mov edx, dword [ebp - 8]
inc eax
add ecx, 0xc
cmp eax, 4
jb 0x600bae28
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x18]
mov dword [eax + 0x14], ecx
inc dword [esi + 0x18]
mov eax, dword [esi + 0x10]
push eax
push edx
push dword [esi + 0x24]
lea ecx, [eax + 2]
mov dword [esi + 0x10], ecx
push esi
call fcn.600bb3b6
add esp, 0x10
test eax, eax
je 0x600baf4e
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x28]
mov edi, 0x1000000
movzx eax, word [ecx + 0x18]
shr eax, 3
inc eax
sub edi, edx
cmp eax, edi
jbe 0x600baef1
push 0xc9
jmp 0x600baf62
lea ecx, [eax + eax*2]
lea eax, [eax + eax*2 + 0xc]
lea ecx, [esi + ecx*4]
mov dword [ecx + 0x2c], edx
mov edi, dword [esi + 0x24]
mov edi, dword [edi + 0x10]
mov dword [esi + eax*4], edi
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x34], eax
jmp 0x600bae73
mov ecx, dword [esi + 0x24]
mov edx, dword [ebp - 8]
lea eax, [eax + eax*2]
mov eax, dword [esi + eax*4 + 0x34]
mov dword [ecx + 0x14], eax
jmp 0x600bae7f
add edx, eax
mov dword [esi + 0x28], edx
push dword [ecx + 0x14]
call fcn.600ba772
add esp, 4
inc eax
add dword [esi + 0x20], eax
jmp 0x600bb265
sub eax, 0x5c
je 0x600baf59
dec eax
dec eax
je 0x600baf55
sub eax, 0x1d
jne 0x600bb197
lea eax, [edi - 2]
push 1
push esi
mov dword [esi + 0x10], eax
call fcn.600bb7f7
pop ecx
mov dword [esi + 0x10], edi
test eax, eax
pop ecx
jl 0x600bb197
mov eax, dword [esi + 0x10]
dec eax
dec eax
push eax
push 0x2e
push 0
push dword [esi + 4]
push dword [esi]
call fcn.600bf4d5
add esp, 0x14
xor eax, eax
jmp 0x600bb26c
push 2
jmp 0x600bafcb
mov edx, dword [esi + 0xc]
cmp edi, edx
jb 0x600baf73
push 0x38
push 0
push dword [esi + 4]
push dword [esi]
call fcn.600bf1f7
add esp, 0x10
jmp 0x600baf4e
mov bx, word [edi]
lea eax, [edi + 2]
movzx ecx, bx
cmp ecx, 0x66
mov dword [ebp + 8], ebx
mov dword [esi + 0x10], eax
jg 0x600bb148
je 0x600bb141
cmp ecx, 0x53
jg 0x600bb0da
je 0x600bb0d3
cmp ecx, 0x30
je 0x600bb06b
jle 0x600bb197
cmp ecx, 0x39
jle 0x600bafe9
cmp ecx, 0x42
je 0x600bafc9
cmp ecx, 0x44
jne 0x600bb197
push 8
jmp 0x600bb223
push 5
push esi
call fcn.600ba780
pop ecx
mov dword [esi + 0x24], eax
test eax, eax
pop ecx
je 0x600baf4e
inc dword [esi + 0x20]
xor eax, eax
inc eax
jmp 0x600bb26c
push esi
push 0x600bb2a1
push dword [esi + 0x14]
lea edi, [eax - 2]
push ebx
call fcn.600bb305
add esp, 0x10
mov ebx, eax
test byte [esi + 0x5d], 0x40
jne 0x600baf4e
cmp ebx, 0xffffffff
jne 0x600bb047
cmp word [ebp + 8], 0x38
sbb eax, eax
neg eax
add eax, 0x94
push eax
push 5
push dword [esi + 4]
push dword [esi]
call fcn.600bf1f7
add esp, 0x10
test eax, eax
je 0x600baf4e
cmp word [ebp + 8], 0x38
mov dword [esi + 0x10], edi
jb 0x600bb087
push 0x5c
pop ebx
jmp 0x600bb197
push 0xd
push esi
call fcn.600ba780
pop ecx
mov dword [esi + 0x24], eax
test eax, eax
pop ecx
je 0x600baf4e
dec ebx
mov dword [eax + 0xc], ebx
mov eax, dword [esi + 0x24]
push dword [eax + 0xc]
jmp 0x600baef9
push 0x94
push 5
push dword [esi + 4]
push dword [esi]
call fcn.600bf1f7
add esp, 0x10
test eax, eax
je 0x600baf4e
mov edx, dword [esi + 0xc]
xor edi, edi
cmp dword [esi + 0x10], edx
jae 0x600bb23e
mov eax, dword [esi + 0x10]
mov cx, word [eax]
cmp cx, 0x30
jb 0x600bb23e
cmp cx, 0x37
ja 0x600bb23e
movzx ecx, cx
add eax, 2
lea ecx, [ecx + edi*8 - 0x30]
mov dword [esi + 0x10], eax
cmp ecx, 0xff
ja 0x600bb23e
cmp eax, edx
mov edi, ecx
jb 0x600bb095
jmp 0x600bb23e
push 0xc
jmp 0x600bb223
sub ecx, 0x57
je 0x600bb13a
sub ecx, 0xb
je 0x600bb133
dec ecx
je 0x600bb0f5
dec ecx
jne 0x600bb197
push 7
jmp 0x600bb223
lea ecx, [eax + 2]
cmp ecx, edx
jae 0x600bb126
mov dx, word [ecx]
cmp dx, 0x41
jb 0x600bb10b
cmp dx, 0x5a
jbe 0x600bb117
cmp dx, 0x61
jb 0x600bb126
cmp dx, 0x7a
ja 0x600bb126
mov al, byte [eax]
mov dword [esi + 0x10], ecx
and eax, 0x1f
mov edi, eax
jmp 0x600bb23e
add eax, 0xfffffffe
push 0x5c
mov dword [esi + 0x10], eax
jmp 0x600bb23d
push 4
jmp 0x600bafcb
push 0xa
jmp 0x600bb223
push 0xc
jmp 0x600bb23d
cmp ecx, 0x75
jg 0x600bb184
je 0x600bb17b
sub ecx, 0x6e
je 0x600bb174
sub ecx, 4
je 0x600bb16d
dec ecx
je 0x600bb166
dec ecx
jne 0x600bb197
push 9
jmp 0x600bb23d
push 0xb
jmp 0x600bb223
push 0xd
jmp 0x600bb23d
push 0xa
jmp 0x600bb23d
mov dword [ebp + 8], 4
jmp 0x600bb1d1
sub ecx, 0x76
je 0x600bb23b
dec ecx
je 0x600bb221
dec ecx
je 0x600bb1ca
push 0xe
push esi
call fcn.600ba780
pop ecx
mov dword [esi + 0x24], eax
test eax, eax
pop ecx
je 0x600baf4e
mov word [eax + 0xc], bx
mov eax, dword [esi + 0x24]
mov dword [eax + 0x10], 1
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x24]
dec eax
dec eax
mov dword [ecx + 8], eax
jmp 0x600bb261
mov dword [ebp + 8], 2
xor ebx, ebx
xor edi, edi
cmp dword [ebp + 8], ebx
jbe 0x600bb23e
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0xc]
jae 0x600bb23e
mov cx, word [eax]
add eax, 2
mov dword [esi + 0x10], eax
lea eax, [ebp - 8]
push eax
push ecx
call fcn.600bb271
pop ecx
test eax, eax
pop ecx
je 0x600bb209
shl edi, 4
or edi, dword [ebp - 8]
inc ebx
cmp ebx, dword [ebp + 8]
jb 0x600bb1da
jmp 0x600bb23e
push 0xfffffffffffffffe
pop eax
sub eax, ebx
add eax, eax
add dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
movzx edi, word [eax]
add eax, 2
mov dword [esi + 0x10], eax
jmp 0x600bb23e
push 9
push esi
call fcn.600ba780
pop ecx
mov dword [esi + 0x24], eax
test eax, eax
pop ecx
je 0x600baf4e
inc dword [esi + 0x20]
jmp 0x600bb265
push 0xb
pop edi
push 0xe
push esi
call fcn.600ba780
pop ecx
mov dword [esi + 0x24], eax
test eax, eax
pop ecx
je 0x600baf4e
mov word [eax + 0xc], di
mov eax, dword [esi + 0x24]
mov dword [eax + 0x10], 1
add dword [esi + 0x20], 3
push esi
call fcn.600bb6e8
pop ecx
pop edi
pop esi
pop ebx
leave
ret