Function at 0x4bc9c0
Capabilities:
Parse credit card information

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x14]
xor ecx, ecx
cmp eax, ecx
push edi
jne 0x4bcc95
mov ebx, 0x80
jmp 0x4bc9de
xor ecx, ecx
mov eax, dword [esi + 0x20]
cmp eax, 0x6e
mov dword [esi + 0x1c], eax
jne 0x4bc9f5
mov eax, dword [esi + 0x18]
test ah, 4
jne 0x4bcc9c
mov eax, dword [esi + 0xc]
cmp eax, ecx
je 0x4bca13
mov edx, dword [esi + 4]
cmp edx, dword [esi + 8]
jb 0x4bca13
mov dword [esi + 4], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 8], eax
mov dword [esi + 0x10], ecx
mov dword [esi + 0xc], ecx
test byte [esi + 0x18], 0x20
je case.0x4bca22.3
mov eax, dword [esi + 0x28]
dec eax
cmp eax, 4
ja case.0x4bca22.3
jmp dword [eax*4 + 0x4bd354]
push esi
call fcn.004bdf10
add esp, 4
mov eax, dword [esi + 4]
mov ebp, dword [esi + 8]
cmp eax, ebp
jb case.default.0x4bca4d
mov ecx, dword [esi + 0x28]
dec ecx
cmp ecx, 8
ja case.default.0x4bca4d
xor edx, edx
mov dl, byte [ecx + 0x4bd374]
jmp dword [edx*4 + 0x4bd368]
mov ecx, dword [esi + 0x28]
mov di, word [eax]
add eax, 2
add ecx, 0xfffffffe
cmp ecx, 7
mov dword [esi + 4], eax
ja case.default.0x4bca6c
jmp dword [ecx*4 + 0x4bd380]
mov ecx, edi
and ecx, 0xffff
add ecx, 0xffffffd3
cmp ecx, 0x30
ja case.0x4bcb5b.48
xor edx, edx
mov dl, byte [ecx + 0x4bd3b4]
jmp dword [edx*4 + 0x4bd3a0]
mov eax, dword [esi]
or dword [eax + 8], 0x40
test byte [esi + 0x18], 2
je case.0x4bcb5b.48
mov eax, dword [esi]
or dword [eax + 8], ebx
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
jae 0x4bce34
push esi
call fcn.004bd570
mov eax, dword [esi + 0x20]
add esp, 4
cmp eax, 0x43
jne 0x4bce2b
xor eax, eax
mov ax, word [esi + 0x24]
cmp eax, 0x64
je 0x4bcb21
cmp eax, 0x73
je 0x4bcb03
cmp eax, 0x77
jne 0x4bce34
push 0x59bbc0
push str._:alnum:__
push esi
call fcn.004bc9a0
mov ecx, dword [esi + 0x1c]
add esp, 0xc
mov dword [esi + 0x20], ecx
jmp 0x4bcc8a
push 0x59bb76
push 0x59bb64
push esi
call fcn.004bc9a0
mov ecx, dword [esi + 0x1c]
add esp, 0xc
mov dword [esi + 0x20], ecx
jmp 0x4bcc8a
push 0x59bb32
push 0x59bb20
push esi
call fcn.004bc9a0
mov ecx, dword [esi + 0x1c]
add esp, 0xc
mov dword [esi + 0x20], ecx
jmp 0x4bcc8a
mov edx, edi
and edx, 0xffff
lea ecx, [edx - 0x24]
cmp ecx, 0x58
ja case.0x4bcb5b.48
xor edx, edx
mov dl, byte [ecx + 0x4bd41c]
jmp dword [edx*4 + 0x4bd3e8]
test byte [esi + 0x18], 2
je 0x4bd1ad
cmp eax, ebp
jae 0x4bd1ad
cmp word [eax], 0x3f
jne 0x4bd1ad
mov eax, dword [esi]
or dword [eax + 8], ebx
mov ebp, dword [esi + 4]
add ebp, 2
xor eax, eax
mov ecx, ebp
mov dword [esi + 4], ebp
mov ax, word [ecx]
add ecx, 2
mov dword [esi + 4], ecx
sub eax, 0x21
cmp eax, 0x1c
ja case.0x4bcbad.37
xor edx, edx
mov dl, byte [eax + 0x4bd48c]
jmp dword [edx*4 + 0x4bd478]
mov edx, dword [esi + 8]
cmp ecx, edx
jae 0x4bcbce
mov eax, dword [esi + 4]
cmp word [eax], 0x29
je 0x4bcbce
add eax, 2
cmp eax, edx
mov dword [esi + 4], eax
jb 0x4bcbbb
mov eax, dword [esi + 4]
cmp eax, edx
jae 0x4bcc8a
add eax, 2
mov dword [esi + 4], eax
jmp 0x4bcc8a
cmp eax, ebp
jae 0x4bce34
test byte [esi + 0x18], 2
je 0x4bd2e4
push esi
call fcn.004bd570
mov eax, dword [esi + 0x14]
add esp, 4
test eax, eax
jne 0x4bce34
cmp dword [esi + 0x20], 0x43
jne 0x4bd342
xor eax, eax
mov ax, word [esi + 0x24]
add eax, 0xffffffbc
cmp eax, 0x33
ja case.0x4bcc2e.74
xor ecx, ecx
mov cl, byte [eax + 0x4bd4c8]
jmp dword [ecx*4 + 0x4bd4ac]
push 0x59bb06
push str.__:digit:__
jmp 0x4bcc7b
push 0x59bb20
push str.__:digit:___:digit:_
jmp 0x4bcc7b
push 0x59bb4a
push str.__:space:__
jmp 0x4bcc7b
push 0x59bb64
push str.__:space:___:space:_
jmp 0x4bcc7b
push 0x59bb90
push str.__:alnum:_____:alnum:___
jmp 0x4bcc7b
push 0x59bbaa
push 0x59bb90
push esi
call fcn.004bc9a0
mov edx, dword [esi + 0x1c]
add esp, 0xc
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4bc9dc
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
pop edi
mov dword [esi + 0x20], 0x41
mov word [esi + 0x24], cx
pop esi
pop ebp
mov eax, 1
pop ebx
ret
pop edi
mov dword [esi + 0x20], 0x65
pop esi
pop ebp
mov eax, 1
pop ebx
ret
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [esi + 0x20], 0x65
jne 0x4bccd7
mov dword [esi + 0x14], 9
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [esi + 0x20], 0x65
jne 0x4bccf3
mov dword [esi + 0x14], 7
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
and edi, 0xffff
push edi
push esi
call fcn.004bdb50
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
ret
mov ecx, edi
and ecx, 0xffff
add ecx, 0xffffffd4
cmp ecx, 0x51
ja case.0x4bcd2b.48
xor edx, edx
mov dl, byte [ecx + 0x4bd510]
jmp dword [edx*4 + 0x4bd4fc]
add edi, 0xffffffd0
mov word [esi + 0x24], di
pop edi
mov dword [esi + 0x20], 0x64
pop esi
pop ebp
mov eax, 1
pop ebx
ret
pop edi
mov dword [esi + 0x20], 0x2c
pop esi
pop ebp
mov eax, 1
pop ebx
ret
cmp dword [esi + 0x28], 4
jne case.0x4bcd2b.48
test byte [esi + 0x18], 2
mov dword [esi + 0x28], 1
je 0x4bcd9f
cmp eax, dword [esi + 8]
jae 0x4bcd9f
cmp word [eax], 0x3f
jne 0x4bcd9f
add eax, 2
mov dword [esi + 4], eax
mov eax, dword [esi]
or dword [eax + 8], ebx
pop edi
mov dword [esi + 0x20], 0x7d
mov word [esi + 0x24], 0
pop esi
pop ebp
mov eax, 1
pop ebx
ret
mov dword [esi + 0x20], 0x7d
pop edi
mov word [esi + 0x24], 1
pop esi
pop ebp
mov eax, 1
pop ebx
ret
cmp dword [esi + 0x28], 5
jne case.0x4bcd2b.48
cmp eax, dword [esi + 8]
jae case.0x4bcd2b.48
cmp word [eax], 0x7d
jne case.0x4bcd2b.48
add eax, 2
pop edi
mov dword [esi + 4], eax
mov dword [esi + 0x28], 2
mov dword [esi + 0x20], 0x7d
pop esi
pop ebp
mov eax, 1
pop ebx
ret
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [esi + 0x20], 0x65
jne 0x4bcdfa
mov dword [esi + 0x14], 0xa
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
cmp dword [esi + 0x1c], 0x5b
je case.0x4bcb5b.48
mov eax, dword [esi + 0x18]
and al, 1
neg al
pop edi
mov dword [esi + 0x20], 0x5d
sbb eax, eax
add eax, 2
mov dword [esi + 0x28], eax
pop esi
pop ebp
mov eax, 1
pop ebx
ret
cmp eax, 0x70
je 0x4bcec2
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [esi + 0x20], 0x65
jne 0x4bce49
mov dword [esi + 0x14], 5
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
cmp dword [esi + 0x1c], 0x5b
je case.0x4bcb5b.48
cmp eax, dword [esi + 8]
jae 0x4bce61
cmp word [eax], 0x5d
je case.0x4bcb5b.48
mov word [esi + 0x24], di
pop edi
mov dword [esi + 0x20], 0x52
pop esi
pop ebp
mov eax, 1
pop ebx
ret
cmp eax, dword [esi + 8]
jb 0x4bce97
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [esi + 0x20], 0x65
jne 0x4bce49
pop edi
mov dword [esi + 0x14], 7
pop esi
pop ebp
xor eax, eax
pop ebx
ret
xor ecx, ecx
mov cx, word [eax]
add eax, 2
mov dword [esi + 4], eax
cmp ecx, 0x2e
je 0x4bcf18
cmp ecx, 0x3a
je 0x4bcef2
cmp ecx, 0x3d
je 0x4bcecc
add eax, 0xfffffffe
mov dword [esi + 4], eax
mov dword [esi + 0x20], 0x70
mov word [esi + 0x24], di
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret
mov eax, dword [esi]
mov dword [esi + 0x28], 8
mov ecx, dword [eax + 8]
or ecx, 0x400
pop edi
mov dword [eax + 8], ecx
mov dword [esi + 0x20], 0x45
pop esi
pop ebp
mov eax, 1
pop ebx
ret
mov eax, dword [esi]
mov dword [esi + 0x28], 9
mov ecx, dword [eax + 8]
or ecx, 0x400
pop edi
mov dword [eax + 8], ecx
mov dword [esi + 0x20], 0x43
pop esi
pop ebp
mov eax, 1
pop ebx
ret
pop edi
mov dword [esi + 0x28], 7
mov dword [esi + 0x20], 0x49
pop esi
pop ebp
mov eax, 1
pop ebx
ret
cmp di, 0x2e
jne case.0x4bcb5b.48
cmp eax, dword [esi + 8]
jae case.0x4bcb5b.48
cmp word [eax], 0x5d
jne case.0x4bcb5b.48
add eax, 2
mov word [esi + 0x24], di
pop edi
mov dword [esi + 4], eax
mov dword [esi + 0x28], 6
mov dword [esi + 0x20], 0x58
pop esi
pop ebp
mov eax, 1
pop ebx
ret
cmp di, 0x3d
jne case.0x4bcb5b.48
cmp eax, dword [esi + 8]
jae case.0x4bcb5b.48
cmp word [eax], 0x5d
jne case.0x4bcb5b.48
add eax, 2
mov word [esi + 0x24], di
pop edi
mov dword [esi + 4], eax
mov dword [esi + 0x28], 6
mov dword [esi + 0x20], 0x58
pop esi
pop ebp
mov eax, 1
pop ebx
ret
mov ebp, 0x3a
cmp di, bp
jne case.0x4bcb5b.48
cmp eax, dword [esi + 8]
jae case.0x4bcb5b.48
cmp word [eax], 0x5d
jne case.0x4bcb5b.48
add eax, 2
pop edi
mov dword [esi + 4], eax
mov word [esi + 0x24], bp
mov dword [esi + 0x28], 6
mov dword [esi + 0x20], 0x58
pop esi
pop ebp
mov eax, 1
pop ebx
ret
pop edi
mov dword [esi + 0x20], 0x7c
pop esi
pop ebp
mov eax, 1
pop ebx
ret
test byte [esi + 0x18], 2
je 0x4bd031
cmp eax, dword [esi + 8]
jae 0x4bd031
cmp word [eax], 0x3f
jne 0x4bd031
add eax, 2
mov dword [esi + 4], eax
mov eax, dword [esi]
or dword [eax + 8], ebx
pop edi
mov dword [esi + 0x20], 0x2a
mov word [esi + 0x24], 0
pop esi
pop ebp
mov eax, 1
pop ebx
ret
pop edi
mov dword [esi + 0x20], 0x2a
mov word [esi + 0x24], 1
pop esi
pop ebp
mov eax, 1
pop ebx
ret
test byte [esi + 0x18], 2
je 0x4bd07b
cmp eax, dword [esi + 8]
jae 0x4bd07b
cmp word [eax], 0x3f
jne 0x4bd07b
add eax, 2
mov dword [esi + 4], eax
mov eax, dword [esi]
or dword [eax + 8], ebx
pop edi
mov dword [esi + 0x20], 0x2b
mov word [esi + 0x24], 0
pop esi
pop ebp
mov eax, 1
pop ebx
ret
pop edi
mov dword [esi + 0x20], 0x2b
mov word [esi + 0x24], 1
pop esi
pop ebp
mov eax, 1
pop ebx
ret
test byte [esi + 0x18], 2
je 0x4bd0c5
cmp eax, dword [esi + 8]
jae 0x4bd0c5
cmp word [eax], 0x3f
jne 0x4bd0c5
add eax, 2
mov dword [esi + 4], eax
mov eax, dword [esi]
or dword [eax + 8], ebx
pop edi
mov dword [esi + 0x20], 0x3f
mov word [esi + 0x24], 0
pop esi
pop ebp
mov eax, 1
pop ebx
ret
pop edi
mov dword [esi + 0x20], 0x3f
mov word [esi + 0x24], 1
pop esi
pop ebp
mov eax, 1
pop ebx
ret
test byte [esi + 0x18], 0x20
je 0x4bd0eb
push esi
call fcn.004bdf10
add esp, 4
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
jae 0x4bd128
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.0048f530
add esp, 4
test eax, eax
je 0x4bd128
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, 4
or edx, ecx
mov dword [eax + 8], edx
pop edi
mov dword [esi + 0x28], ecx
mov dword [esi + 0x20], 0x7b
pop esi
pop ebp
mov eax, 1
pop ebx
ret
mov eax, dword [esi]
or dword [eax + 8], 8
mov eax, dword [esi]
or dword [eax + 8], 0x100
jmp case.0x4bcb5b.48
pop edi
mov dword [esi + 0x20], 0x28
mov word [esi + 0x24], 0
pop esi
pop ebp
mov eax, 1
pop ebx
ret
mov eax, dword [esi]
or dword [eax + 8], 2
pop edi
mov dword [esi + 0x20], 0x4c
mov word [esi + 0x24], 1
pop esi
pop ebp
mov eax, 1
pop ebx
ret
mov eax, dword [esi]
or dword [eax + 8], 2
pop edi
mov dword [esi + 0x20], 0x4c
mov word [esi + 0x24], 0
pop esi
pop ebp
mov eax, 1
pop ebx
ret
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [esi + 0x20], 0x65
jne 0x4bce49
pop edi
mov dword [esi + 0x14], 0xd
pop esi
pop ebp
xor eax, eax
pop ebx
ret
test byte [esi + 0x18], 0x10
mov dword [esi + 0x20], 0x28
je 0x4bcda6
pop edi
mov word [esi + 0x24], 0
pop esi
pop ebp
mov eax, 1
pop ebx
ret
cmp dword [esi + 0x1c], 0x28
jne 0x4bd1dd
mov eax, dword [esi]
or dword [eax + 8], 0x100
mov word [esi + 0x24], di
pop edi
mov dword [esi + 0x20], 0x29
pop esi
pop ebp
mov eax, 1
pop ebx
ret
mov edx, dword [esi + 8]
mov ecx, edx
sub ecx, eax
and ecx, 0xfffffffe
cmp ecx, 0xc
mov ebx, 0x5b
jl 0x4bd271
cmp word [eax], bx
jne 0x4bd271
mov ebp, 0x3a
cmp word [eax + 2], bp
jne 0x4bd271
mov eax, dword [esi + 4]
mov cx, word [eax + 4]
cmp cx, 0x3c
je 0x4bd229
cmp cx, 0x3e
jne 0x4bd271
cmp word [eax + 6], bp
jne 0x4bd271
mov edi, 0x5d
cmp word [eax + 8], di
jne 0x4bd271
cmp word [eax + 0xa], di
jne 0x4bd271
add eax, 0xc
mov dword [esi + 4], eax
mov eax, dword [esi]
mov ebp, dword [eax + 8]
or ebp, 0x80
xor edx, edx
cmp cx, 0x3c
setne dl
mov dword [eax + 8], ebp
pop edi
mov eax, 1
dec edx
and edx, 0xfffffffe
add edx, 0x3e
mov dword [esi + 0x20], edx
pop esi
pop ebp
pop ebx
ret
mov eax, dword [esi + 4]
cmp eax, edx
mov dword [esi + 0x28], 6
jae 0x4bd29e
cmp word [eax], 0x5e
jne 0x4bd29e
add eax, 2
pop edi
mov dword [esi + 4], eax
mov dword [esi + 0x20], ebx
mov word [esi + 0x24], 0
pop esi
pop ebp
mov eax, 1
pop ebx
ret
pop edi
mov dword [esi + 0x20], ebx
mov word [esi + 0x24], 1
pop esi
pop ebp
mov eax, 1
pop ebx
ret
pop edi
mov dword [esi + 0x20], 0x2e
pop esi
pop ebp
mov eax, 1
pop ebx
ret
pop edi
mov dword [esi + 0x20], 0x5e
pop esi
pop ebp
mov eax, 1
pop ebx
ret
pop edi
mov dword [esi + 0x20], 0x24
pop esi
pop ebp
mov eax, 1
pop ebx
ret
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.0048f470
add esp, 4
test eax, eax
je 0x4bd305
mov eax, dword [esi]
or dword [eax + 8], 0x10
mov eax, dword [esi]
or dword [eax + 8], 0x100
mov eax, dword [esi + 4]
mov dword [esi + 0x20], 0x70
mov dx, word [eax]
add eax, 2
pop edi
mov dword [esi + 4], eax
mov word [esi + 0x24], dx
pop esi
pop ebp
mov eax, 1
pop ebx
ret
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [esi + 0x20], 0x65
jne 0x4bd33b
mov dword [esi + 0x14], 0xf
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
mov ecx, dword [esi + 0x14]
pop edi
pop esi
xor eax, eax
test ecx, ecx
pop ebp
sete al
pop ebx
ret