Function at 0x600b8c5c
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 8]
push ebx
push esi
lea ecx, [ebp - 8]
xor ebx, ebx
xor esi, esi
cmp ecx, dword [eax + 0xc]
push edi
mov dword [ebp - 4], ebx
ja 0x600b8c8d
push 0x1a
push ebx
push 0x6008aa6b
push eax
call sym.MZKERNEL32.DLL_JS_ReportErrorNumber
add esp, 0x10
jmp 0x600b91a9
mov edi, dword [ebp + 0xc]
mov al, byte [edi + 3]
cmp al, 0xfd
je 0x600b8d9a
cmp al, 0xfe
je 0x600b8d73
cmp al, 0xff
je 0x600b8d55
cmp al, 1
je 0x600b8d50
cmp al, 2
je 0x600b8d29
cmp al, 3
jne 0x600b8dcc
mov esi, dword [edi + 0x10]
mov eax, dword [edi + 0x18]
mov ebx, dword [edi + 0x14]
mov dword [ebp - 4], eax
test esi, esi
je 0x600b8ce6
push dword [ebp + 0x10]
push esi
push dword [ebp + 8]
call fcn.600b8c5c
add esp, 0xc
test eax, eax
je 0x600b91a9
test ebx, ebx
je 0x600b8d01
push dword [ebp + 0x10]
push ebx
push dword [ebp + 8]
call fcn.600b8c5c
add esp, 0xc
test eax, eax
je 0x600b91a9
cmp dword [ebp - 4], 0
je 0x600b8dcc
push dword [ebp + 0x10]
push dword [ebp - 4]
push dword [ebp + 8]
call fcn.600b8c5c
add esp, 0xc
test eax, eax
jne 0x600b8dcc
jmp 0x600b91a9
mov esi, dword [edi + 0x10]
mov ebx, dword [edi + 0x14]
test esi, esi
je 0x600b8d4a
push dword [ebp + 0x10]
push esi
push dword [ebp + 8]
call fcn.600b8c5c
add esp, 0xc
test eax, eax
je 0x600b91a9
push dword [ebp + 0x10]
push ebx
jmp 0x600b8d11
mov esi, dword [edi + 0x10]
jmp 0x600b8d69
mov esi, dword [edi + 0x14]
test esi, esi
je 0x600b8dcc
cmp byte [esi + 3], 0xff
jne 0x600b8d69
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x600b8d5c
test esi, esi
je 0x600b8dcc
push dword [ebp + 0x10]
push esi
jmp 0x600b8d11
mov ebx, dword [edi + 0x10]
mov esi, ebx
jmp 0x600b8d94
push dword [ebp + 0x10]
push ebx
push dword [ebp + 8]
call fcn.600b8c5c
add esp, 0xc
test eax, eax
je 0x600b91a9
mov ebx, dword [ebx + 0x20]
test ebx, ebx
jne 0x600b8d7a
jmp 0x600b8dcc
mov eax, dword [ebp + 0x10]
push eax
mov cx, word [eax]
mov word [ebp + 0xc], cx
mov cx, word [edi + 0x18]
mov word [eax], cx
push dword [edi + 0x14]
push dword [ebp + 8]
call fcn.600b8c5c
add esp, 0xc
test eax, eax
je 0x600b91a9
mov ecx, dword [ebp + 0x10]
mov ax, word [ebp + 0xc]
mov word [ecx], ax
movzx eax, word [edi]
cmp eax, 0x13
jg 0x600b911c
je 0x600b9083
sub eax, 5
je 0x600b91e9
sub eax, 9
je 0x600b8dfc
dec eax
je 0x600b8e5b
dec eax
je 0x600b8dfc
dec eax
je 0x600b8e50
dec eax
jne 0x600b92b1
cmp byte [edi + 3], 0xfe
jne 0x600b9020
test esi, esi
mov ebx, esi
je 0x600b8e37
push 0x1e
push ebx
push dword [ebp + 8]
call fcn.600b9349
add esp, 0xc
test eax, eax
je 0x600b91a9
cmp word [ebx], 0x1e
jne 0x600b8e2f
mov ebx, dword [ebx + 0x20]
test ebx, ebx
jne 0x600b8e0c
test ebx, ebx
jne 0x600b92b1
push dword [ebp + 0x10]
mov eax, dword [esi + 0x20]
movzx ecx, byte [edi + 2]
mov ebx, dword [eax + 0x20]
push edi
push eax
push esi
mov dword [ebp + 0xc], ecx
push ecx
jmp 0x600b9002
cmp byte [edi + 3], 0
jne 0x600b8dfc
jmp 0x600b92b1
cmp byte [edi + 3], 0xfe
jne 0x600b8f50
mov eax, dword [edi + 0x1c]
test al, 2
jne 0x600b92b1
cmp eax, 1
jne 0x600b8dfc
and dword [ebp + 0xc], 0
mov ebx, esi
test esi, esi
je 0x600b8eb3
push 0x1f
push ebx
push dword [ebp + 8]
call fcn.600b9349
add esp, 0xc
test eax, eax
je 0x600b91a9
cmp word [ebx], 0x1f
jne 0x600b92b1
mov eax, dword [ebx + 0x10]
mov ebx, dword [ebx + 0x20]
mov eax, dword [eax + 8]
and al, 0xf8
mov eax, dword [eax]
add dword [ebp + 0xc], eax
test ebx, ebx
jne 0x600b8e7f
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax + 2]
push eax
push dword [ebp + 8]
call sym.MZKERNEL32.DLL_JS_malloc
mov ebx, eax
pop ecx
test ebx, ebx
pop ecx
je 0x600b91a9
push 0
push dword [ebp + 0xc]
push ebx
push dword [ebp + 8]
call fcn.600c7f10
add esp, 0x10
mov dword [ebp - 4], eax
test eax, eax
jne 0x600b8f21
push ebx
push dword [ebp + 8]
call sym.MZKERNEL32.DLL_JS_free
pop ecx
pop ecx
jmp 0x600b91a9
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
and al, 0xf8
mov ecx, dword [eax]
add ecx, ecx
push ecx
mov dword [ebp + 0xc], ecx
push dword [eax + 4]
push ebx
call sub.MSVCRT.DLL_memcpy
push dword [ebp + 0x10]
add ebx, dword [ebp + 0xc]
push esi
call fcn.600b48cf
add esp, 0x14
mov esi, eax
test esi, esi
jne 0x600b8ef7
and word [ebx], si
push esi
push dword [ebp - 4]
push dword [ebp + 8]
call fcn.600892e5
add esp, 0xc
mov dword [edi + 0x10], eax
test eax, eax
je 0x600b91a9
mov word [edi], 0x1f
mov byte [edi + 2], 0x3d
jmp 0x600b9113
cmp word [esi], 0x1f
je 0x600b8f64
cmp word [ebx], 0x1f
jne 0x600b8dfc
mov eax, esi
jmp 0x600b8f66
mov eax, ebx
push 0x1f
push eax
push dword [ebp + 8]
call fcn.600b9349
add esp, 0xc
test eax, eax
je 0x600b91a9
cmp word [esi], 0x1f
jne 0x600b92b1
cmp word [ebx], 0x1f
jne 0x600b92b1
mov ecx, dword [ebx + 0x10]
mov eax, dword [esi + 0x10]
mov ecx, dword [ecx + 8]
mov eax, dword [eax + 8]
and ecx, 0xfffffff8
and al, 0xf8
push ecx
push eax
push dword [ebp + 8]
call fcn.600c46b5
add esp, 0xc
test eax, eax
je 0x600b91a9
push 0
push eax
push dword [ebp + 8]
call fcn.600892e5
add esp, 0xc
mov dword [edi + 0x10], eax
test eax, eax
je 0x600b91a9
push dword [ebp + 0x10]
and byte [edi + 3], 0
mov word [edi], 0x1f
mov byte [edi + 2], 0x3d
push esi
call fcn.600b48cf
push dword [ebp + 0x10]
push ebx
call fcn.600b48cf
add esp, 0x10
jmp 0x600b92b1
push dword [ebp + 0x10]
mov ebx, dword [ebx + 0x20]
push edi
push eax
push edi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.600b93dc
add esp, 0x18
test eax, eax
je 0x600b91a9
test ebx, ebx
mov eax, ebx
jne 0x600b8ff6
jmp 0x600b92b1
push 0x1e
push esi
push dword [ebp + 8]
call fcn.600b9349
add esp, 0xc
test eax, eax
je 0x600b91a9
push 0x1e
push ebx
push dword [ebp + 8]
call fcn.600b9349
add esp, 0xc
test eax, eax
je 0x600b91a9
cmp word [esi], 0x1e
jne 0x600b92b1
cmp word [ebx], 0x1e
jne 0x600b92b1
push dword [ebp + 0x10]
movzx eax, byte [edi + 2]
push edi
push ebx
push esi
push eax
push dword [ebp + 8]
call fcn.600b93dc
add esp, 0x18
test eax, eax
jne 0x600b92b1
jmp 0x600b91a9
cmp word [esi], 0x1e
jne 0x600b92b1
movzx eax, byte [edi + 2]
fld qword [esi + 0x10]
fstp qword [ebp - 0xc]
sub eax, 0x20
je 0x600b90f4
dec eax
je 0x600b90b3
dec eax
je 0x600b90ac
sub eax, 0x30
je 0x600b90e0
jmp 0x600b92b1
fld qword [ebp - 0xc]
fchs
jmp 0x600b90dd
fld qword [ebp - 0xc]
lea eax, [ebp + 8]
push eax
push ecx
push ecx
fstp qword [esp]
push dword [ebp + 8]
call fcn.600aa429
add esp, 0x10
test eax, eax
je 0x600b91a9
mov eax, dword [ebp + 8]
not eax
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fstp qword [ebp - 0xc]
fld qword [ebp - 0xc]
mov word [edi], 0x1e
mov byte [edi + 2], 0x3c
fstp qword [edi + 0x10]
jmp 0x600b91bc
fld qword [ebp - 0xc]
fcomp qword [0x600d6130]
mov word [edi], 0x21
fnstsw ax
test ah, 0x44
jp 0x600b910d
push 0x43
jmp 0x600b910f
push 0x42
pop eax
mov byte [edi + 2], al
and byte [edi + 3], 0
jmp 0x600b92b1
cmp eax, 0x25
je 0x600b91c9
cmp eax, 0x3c
jle 0x600b92b1
cmp eax, 0x3f
jle 0x600b914f
cmp eax, 0x41
je 0x600b914f
cmp eax, 0x48
je 0x600b916d
cmp eax, 0x4c
jle 0x600b92b1
cmp eax, 0x4e
jg 0x600b92b1
cmp byte [edi + 3], 0xfe
jne 0x600b92b1
push dword [ebp + 0x10]
push edi
push dword [ebp + 8]
call fcn.600b9609
add esp, 0xc
jmp 0x600b9076
cmp word [esi], 0x41
jne 0x600b92b1
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
push eax
push dword [ebp + 8]
call fcn.600d38d1
pop ecx
test eax, eax
pop ecx
je 0x600b91a9
mov eax, dword [ebp + 0xc]
push 0
and al, 0xf8
push eax
push dword [ebp + 8]
call fcn.600890fe
add esp, 0xc
test eax, eax
jne 0x600b91b0
xor eax, eax
jmp 0x600b92b4
mov word [edi], 0x41
mov byte [edi + 2], 0x50
mov dword [edi + 0x10], eax
push dword [ebp + 0x10]
and byte [edi + 3], 0
push esi
jmp 0x600b92aa
push ebx
call fcn.600b92b9
test eax, eax
pop ecx
jne 0x600b92b1
push dword [ebp - 4]
call fcn.600b92b9
test eax, eax
pop ecx
jne 0x600b92b1
movzx eax, word [esi]
sub eax, 0x1e
je 0x600b9240
dec eax
je 0x600b9211
dec eax
dec eax
jne 0x600b92b1
mov al, byte [esi + 2]
cmp al, 0x43
je 0x600b9253
cmp al, 0x42
je 0x600b9250
cmp al, 0x40
jne 0x600b92b1
jmp 0x600b9250
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
and al, 0xf8
mov ecx, dword [eax]
test ecx, 0x40000000
mov eax, ecx
je 0x600b923a
and eax, 0x80000000
neg eax
sbb eax, eax
and eax, 0x3fff8000
add eax, 0x7fff
and eax, ecx
test eax, eax
jne 0x600b9253
jmp 0x600b9250
fld qword [esi + 0x10]
fcomp qword [0x600d6130]
fnstsw ax
test ah, 0x44
jp 0x600b9253
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x600b9281
mov ax, word [ebx]
lea esi, [ebx + 0x10]
mov word [edi], ax
mov al, byte [ebx + 2]
mov byte [edi + 2], al
mov al, byte [ebx + 3]
mov byte [edi + 3], al
add edi, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
and word [ebx], 0
and byte [ebx + 2], 0
and byte [ebx + 3], 0
jmp 0x600b928e
and dword [edi + 0x10], 0
mov word [edi], 2
mov byte [edi + 3], 1
push dword [ebp + 0x10]
push ebx
call fcn.600b48cf
cmp dword [ebp - 4], 0
pop ecx
pop ecx
je 0x600b92b1
cmp dword [ebp - 4], ebx
je 0x600b92b1
push dword [ebp + 0x10]
push dword [ebp - 4]
call fcn.600b48cf
pop ecx
pop ecx
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret