Function at 0x5b8990
Capabilities:
Parse credit card information

Disassembly:
mov eax, 0x5cd1ea
call fcn.005bbdec
sub esp, 0x2c
push ebx
mov ebx, ecx
lea ecx, [ebp - 0x10]
call fcn.004014ce
and dword [ebp - 4], 0
movzx eax, word [ebx]
test ax, ax
je 0x5b8c8c
push esi
push edi
mov esi, 0x611000
cmp ax, 0x24
je 0x5b8baa
cmp ax, 0x26
je 0x5b8baa
cmp ax, 0x2b
je 0x5b8baa
cmp ax, 0x2c
je 0x5b8baa
cmp ax, 0x2f
je 0x5b8baa
cmp ax, 0x3a
je 0x5b8baa
cmp ax, 0x3b
je 0x5b8baa
cmp ax, 0x3d
je 0x5b8baa
cmp ax, 0x3f
je 0x5b8baa
cmp ax, 0x40
je 0x5b8baa
cmp ax, 0x23
je 0x5b8baa
cmp ax, 0x20
je 0x5b8baa
cmp ax, 0x7f
jbe 0x5b8c6e
mov ecx, 0x7ff
movzx edi, ax
push esi
cmp ax, cx
ja 0x5b8ae8
lea eax, [ebp - 0x18]
or edi, 0x3000
push eax
shr edi, 6
call fcn.00404eed
pop ecx
pop ecx
push edi
mov ecx, eax
call fcn.004014f9
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x38]
push 4
push eax
call fcn.0051f3aa
add esp, 0x14
lea ecx, [ebp - 0x18]
call fcn.004014f4
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x10]
call fcn.004020e1
movzx edi, word [ebx]
lea eax, [ebp - 0x1c]
push esi
and edi, 0x3f
push eax
or edi, 0x80
call fcn.00404eed
pop ecx
pop ecx
push edi
mov ecx, eax
call fcn.004014f9
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x38]
push 4
push eax
call fcn.0051f3aa
lea ecx, [ebp - 0x1c]
add esp, 0x14
call fcn.004014f4
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x10]
call fcn.004081d0
lea ecx, [ebp - 0x10]
call fcn.00402505
mov edi, eax
jmp 0x5b8c29
lea eax, [ebp - 0x20]
or edi, 0xe0000
push eax
shr edi, 0xc
call fcn.00404eed
pop ecx
pop ecx
push edi
mov ecx, eax
call fcn.004014f9
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x38]
push 4
push eax
call fcn.0051f3aa
add esp, 0x14
lea ecx, [ebp - 0x20]
call fcn.004014f4
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x10]
call fcn.004020e1
movzx edi, word [ebx]
and edi, 0xfc0
lea eax, [ebp - 0x24]
push esi
or edi, 0x2000
push eax
shr edi, 6
call fcn.00404eed
pop ecx
pop ecx
push edi
mov ecx, eax
call fcn.004014f9
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x38]
push 4
push eax
call fcn.0051f3aa
add esp, 0x14
lea ecx, [ebp - 0x24]
call fcn.004014f4
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x10]
call fcn.004081d0
movzx edi, word [ebx]
lea eax, [ebp - 0x28]
push esi
and edi, 0x3f
push eax
or edi, 0x80
call fcn.00404eed
pop ecx
pop ecx
push edi
mov ecx, eax
call fcn.004014f9
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x38]
push 4
push eax
call fcn.0051f3aa
lea ecx, [ebp - 0x28]
jmp 0x5b8ac5
lea eax, [ebp - 0x2c]
push esi
push eax
call fcn.00404eed
pop ecx
pop ecx
movzx ecx, word [ebx]
push ecx
mov ecx, eax
call fcn.004014f9
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x38]
push 4
push eax
call fcn.0051f3aa
add esp, 0x14
lea ecx, [ebp - 0x2c]
call fcn.004014f4
and dword [ebp - 0x14], 0
lea eax, [ebp - 0x38]
lea ecx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x5b8be4
sub eax, ecx
sar eax, 1
je 0x5b8c26
mov edi, dword [ebp - 0x14]
lea edi, [ebp + edi*2 - 0x38]
movzx eax, word [edi]
push eax
call fcn.0051f769
inc dword [ebp - 0x14]
mov word [edi], ax
lea eax, [ebp - 0x38]
pop ecx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x5b8c12
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x14], eax
jb 0x5b8bf5
lea edi, [ebp - 0x38]
test edi, edi
je 0x5b8c6e
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x5b8c32
sub eax, edx
sar eax, 1
push edi
inc eax
push eax
push dword [ebp + 8]
call fcn.0051eaaf
mov eax, edi
add esp, 0xc
lea ecx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x5b8c54
sub eax, ecx
mov ecx, dword [ebp + 8]
sar eax, 1
lea eax, [ecx + eax*2]
mov dword [ebp + 8], eax
jmp 0x5b8c7b
mov ecx, dword [ebp + 8]
mov ax, word [ebx]
add dword [ebp + 8], 2
mov word [ecx], ax
add ebx, 2
movzx eax, word [ebx]
test ax, ax
jne 0x5b89bf
pop edi
pop esi
mov ecx, dword [ebp + 8]
xor eax, eax
mov word [ecx], ax
lea ecx, [ebp - 0x10]
call fcn.004014f4
mov ecx, dword [ebp - 0xc]
pop ebx
mov dword fs:[0], ecx
leave
ret