Function at 0x4fdad8
Capabilities:
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x13c]
sub esp, 0x1bc
mov eax, dword [0x5610a0]
xor eax, ebp
mov dword [ebp + 0x138], eax
or dword [ebp - 0x60], 0xffffffff
xor ecx, ecx
push ebx
mov ebx, dword [ebp + 0x144]
mov eax, dword [ebx + 8]
push esi
mov esi, dword [ebp + 0x148]
mov dword [esi + 4], eax
mov dword [esi + 0xc], ecx
mov eax, dword [ebx + 8]
push edi
mov edi, dword [ebx + 0xc]
add edi, eax
mov dword [ebp - 0x70], eax
mov al, byte [edi]
test al, al
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x80], ecx
jne 0x4fdb44
push 0xfffffffffffffffe
mov dword [esi + 8], ecx
mov dword [esi], ecx
pop eax
jmp 0x4fe05f
movsx eax, al
cmp eax, ecx
mov dword [ebp - 0x64], eax
je 0x4fddc4
cmp dword [ebp - 0x78], ecx
je 0x4fdbbf
movsx eax, byte [ebp - 0x64]
push eax
push 0x517c38
call 0x5cf39e
test eax, eax
pop ecx
pop ecx
je 0x4fdda8
mov eax, dword [ebp - 0x78]
mov esi, edi
sub esi, dword [ebx + 0xc]
sub esi, eax
cmp dword [ebp - 0x60], 0
jne 0x4fdb8b
mov dword [ebx], eax
lea eax, [esi + eax - 1]
mov dword [ebx + 4], eax
jmp 0x4fdbb4
mov ecx, dword [ebp - 0x74]
add ecx, 0x10
push esi
call fcn.004f38f9
mov ecx, dword [ebx + 0xc]
add ecx, dword [ebp - 0x78]
push esi
push ecx
push eax
call 0x5cf3f0
mov ecx, dword [ebp - 0x74]
add esp, 0xc
push esi
add ecx, 0x10
call fcn.004f64b6
xor eax, eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
xor edx, edx
cmp dword [ebp - 0x68], edx
je 0x4fdd5d
mov eax, dword [ebp - 0x64]
cmp eax, 0x3e
jne 0x4fdc69
test byte [ebp - 0x5c], 0xc0
jne 0x4fdc82
mov ecx, dword [ebp - 0x6c]
mov eax, edi
sub eax, dword [ebx + 0xc]
cmp ecx, 1
mov dword [ebp - 0x70], eax
jne 0x4fdc24
cmp dword [ebp - 0x60], ecx
mov dword [ebp - 0x68], edx
jne 0x4fdc5a
cmp dword [ebp - 0x7c], 0x2f
jne 0x4fdc5a
cmp dword [ebp - 0x80], edx
je 0x4fdc18
movsx eax, byte [ebp - 0x80]
push eax
push 0x517c30
call 0x5cf39e
test eax, eax
pop ecx
pop ecx
je 0x4fdc5a
mov eax, dword [ebp - 0x74]
or dword [eax + 0xc], 0x10000
jmp 0x4fdc5a
cmp eax, ecx
jle 0x4fdc51
mov eax, edi
sub eax, ecx
lea esi, [eax + 1]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x64], ecx
sub eax, esi
jmp 0x4fdc3b
xor edx, edx
dec dword [ebp - 0x64]
je 0x4fdc4e
mov cl, byte [esi]
mov dl, byte [eax + esi]
inc esi
cmp cl, dl
je 0x4fdc39
xor edx, edx
jmp 0x4fdc51
mov dword [ebp - 0x68], edx
cmp dword [ebp - 0x68], edx
jne 0x4fdda8
test byte [ebp - 0x5c], 0x20
je 0x4fe04a
jmp 0x4fdda8
cmp eax, 0x3c
jne 0x4fdc82
cmp dword [ebp - 0x60], 2
je 0x4fe119
cmp dword [ebp - 0x60], 0xffffffff
je 0x4fe119
test byte [ebp - 0x60], 1
je 0x4fdd32
test byte [ebp - 0x5c], 0xc0
je 0x4fdcbb
cmp eax, 0x22
jne 0x4fdcaa
test byte [ebp - 0x5c], 0x80
je 0x4fdd27
xor dword [ebp - 0x5c], 0x80
jmp 0x4fdd27
cmp eax, 0x27
jne 0x4fdd27
test byte [ebp - 0x5c], 0x40
je 0x4fdd27
xor dword [ebp - 0x5c], 0x40
jmp 0x4fdd27
cmp eax, 0x22
jne 0x4fdcd1
test word [ebp - 0x5c], 0x100
je 0x4fdd27
xor dword [ebp - 0x5c], 0x180
jmp 0x4fdd27
cmp eax, 0x27
jne 0x4fdce7
test word [ebp - 0x5c], 0x100
je 0x4fdd27
xor dword [ebp - 0x5c], 0x140
jmp 0x4fdd27
cmp eax, 0x3d
jne 0x4fdd00
cmp dword [ebp - 0x7c], eax
je 0x4fdd00
mov ecx, 0x100
test dword [ebp - 0x5c], ecx
jne 0x4fdd00
xor dword [ebp - 0x5c], ecx
jmp 0x4fdd27
test word [ebp - 0x5c], 0x100
je 0x4fdd27
movsx eax, byte [ebp - 0x64]
push eax
push 0x517a98
call 0x5cf39e
pop ecx
test eax, eax
mov eax, dword [ebp - 0x64]
pop ecx
jne 0x4fdd27
xor dword [ebp - 0x5c], 0x100
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], eax
jmp 0x4fdda8
test byte [ebp - 0x60], 0x40
je 0x4fdda8
cmp eax, 0x22
jne 0x4fdd4c
test byte [ebp - 0x5c], 0x40
jne 0x4fdda8
xor dword [ebp - 0x5c], 0x80
jmp 0x4fdda8
cmp eax, 0x27
jne 0x4fdda8
test byte [ebp - 0x5c], 0x80
jne 0x4fdda8
xor dword [ebp - 0x5c], 0x40
jmp 0x4fdda8
cmp dword [ebp - 0x5c], edx
je 0x4fe077
test byte [ebp - 0x5c], 0x10
je 0x4fde0d
cmp dword [ebp - 0x64], 0x3c
je 0x4fe122
movsx eax, byte [ebp - 0x64]
push eax
push 0x517a98
call 0x5cf39e
test eax, eax
pop ecx
pop ecx
jne 0x4fdda8
xor dword [ebp - 0x5c], 0x10
mov dword [ebp - 0x60], 2
mov dword [ebp - 0x6c], 1
mov dword [ebp - 0x68], 0x517c2c
push edi
call 0x5d0940
add edi, eax
movsx eax, byte [edi]
pop ecx
xor ecx, ecx
cmp eax, ecx
mov dword [ebp - 0x64], eax
jne 0x4fdb52
mov esi, dword [ebp - 0x74]
sub edi, dword [ebx + 0xc]
dec edi
cmp dword [ebp - 0x60], 4
mov dword [ebp - 0x70], edi
je 0x4fe04a
cmp dword [ebp - 0x60], 2
je 0x4fe04a
test byte [ebp - 0x5c], 0x20
mov edx, 0x517c28
jne 0x4fe0e4
mov eax, dword [ebp - 0x60]
cmp eax, 0x40
je 0x4fe0e4
cmp eax, 1
jne 0x4fe0b5
mov edx, 0x517c1c
jmp 0x4fe0e9
test byte [ebp - 0x5c], 1
je 0x4fdec6
mov ecx, dword [ebp - 0x64]
xor eax, eax
inc eax
xor dword [ebp - 0x5c], eax
cmp ecx, 0x60
ja 0x4fdeac
cmp ecx, 0x40
jbe 0x4fde33
cmp ecx, 0x5b
jb 0x4fdeac
cmp ecx, 0x5f
je 0x4fdeac
cmp ecx, 0x3a
je 0x4fdeac
cmp ecx, 0x2f
jne 0x4fde50
mov dword [ebp - 0x6c], eax
mov eax, edi
sub eax, dword [ebx + 0xc]
mov dword [ebp - 0x60], edx
inc eax
jmp 0x4fdeb7
cmp ecx, 0x21
jne 0x4fde5e
or dword [ebp - 0x5c], 2
jmp 0x4fdda8
cmp ecx, 0x3f
jne 0x4fde80
mov eax, edi
sub eax, dword [ebx + 0xc]
mov dword [ebp - 0x68], 0x517c18
mov dword [ebp - 0x6c], 2
mov dword [ebp - 0x60], 0x10
inc eax
jmp 0x4fdebe
push dword [ebp - 0x70]
lea eax, [ebp - 0x58]
push 0x517c04
push 0x517be8
push eax
mov dword [ebp - 0x68], 0x517be4
mov dword [ebp - 0x6c], 1
call 0x5d15c3
lea eax, [ebp - 0x58]
jmp 0x4fe002
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], eax
mov eax, edi
sub eax, dword [ebx + 0xc]
mov dword [ebp - 0x68], 0x517be4
mov dword [ebp - 0x78], eax
jmp 0x4fdda8
test byte [ebp - 0x5c], 2
je 0x4fdf5a
xor dword [ebp - 0x5c], 2
cmp dword [ebp - 0x64], 0x2d
jne 0x4fdee3
or dword [ebp - 0x5c], 4
jmp 0x4fdda8
cmp dword [ebp - 0x64], 0x5b
jne 0x4fdef8
test byte [ebp - 0x5c], 0x20
jne 0x4fdf0d
or dword [ebp - 0x5c], 8
jmp 0x4fdda8
cmp dword [ebp - 0x64], 0x44
jne 0x4fdf0d
test byte [ebp - 0x5c], 0x20
jne 0x4fdf0d
or dword [ebp - 0x5c], 0x20
jmp 0x4fdda8
movsx eax, byte [ebp - 0x64]
push eax
push 0x517be0
call 0x5cf39e
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x68], 0x517be4
mov dword [ebp - 0x6c], 1
je 0x4fdf3c
mov dword [ebp - 0x60], 0x40
jmp 0x4fdda8
push dword [ebp - 0x70]
lea eax, [ebp + 0xc]
push 0x517bd8
push 0x517be8
push eax
call 0x5d15c3
lea eax, [ebp + 0xc]
jmp 0x4fe002
test byte [ebp - 0x5c], 4
je 0x4fdfad
xor dword [ebp - 0x5c], 4
cmp dword [ebp - 0x64], 0x2d
jne 0x4fdf84
mov dword [ebp - 0x68], 0x517bd4
mov dword [ebp - 0x6c], 3
mov dword [ebp - 0x60], 0x20
jmp 0x4fdda8
push dword [ebp - 0x70]
lea eax, [ebp + 0x70]
push 0x517bc8
push 0x517be8
push eax
mov dword [ebp - 0x68], 0x517be4
mov dword [ebp - 0x6c], 1
call 0x5d15c3
lea eax, [ebp + 0x70]
jmp 0x4fe002
test byte [ebp - 0x5c], 8
je 0x4fe01a
push 8
pop eax
xor dword [ebp - 0x5c], eax
cmp dword [ebp - 0x64], 0x43
jne 0x4fdfd5
mov dword [ebp - 0x68], 0x517bc4
mov dword [ebp - 0x6c], 3
mov dword [ebp - 0x60], eax
jmp 0x4fdda8
push dword [ebp - 0x70]
lea eax, [ebp + 0xd4]
push 0x517c28
push 0x517be8
push eax
mov dword [ebp - 0x68], 0x517be4
mov dword [ebp - 0x6c], 1
call 0x5d15c3
lea eax, [ebp + 0xd4]
mov ecx, dword [ebp - 0x74]
add esp, 0x10
push eax
add ecx, 0x10
call fcn.004f3b1a
or dword [ebp - 0x60], 0xffffffff
jmp 0x4fdda8
test byte [ebp - 0x5c], 0x20
je 0x4fdda8
cmp dword [ebp - 0x64], 0x3c
jne 0x4fe033
or dword [ebp - 0x5c], 1
jmp 0x4fdda8
cmp dword [ebp - 0x64], 0x3e
jne 0x4fdda8
sub edi, dword [ebx + 0xc]
mov dword [ebp - 0x60], 0x40
mov dword [ebp - 0x70], edi
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x74]
inc eax
mov dword [ebx + 8], eax
sub eax, dword [ecx + 4]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x60]
mov dword [ecx], eax
mov ecx, dword [ebp + 0x138]
pop edi
pop esi
xor ecx, ebp
pop ebx
call 0x5ce5f3
add ebp, 0x13c
leave
ret
cmp dword [ebp - 0x64], 0x3c
jne 0x4fe089
mov dword [ebp - 0x5c], 1
jmp 0x4fdda8
movsx eax, byte [ebp - 0x64]
push eax
push 0x517a98
mov dword [ebp - 0x60], 4
call 0x5cf39e
test eax, eax
pop ecx
pop ecx
je 0x4fdd93
mov dword [ebp - 0x5c], 0x10
jmp 0x4fdda8
cmp eax, ecx
jne 0x4fe0c0
mov edx, 0x517bb4
jmp 0x4fe0e9
cmp eax, 8
jne 0x4fe0cc
mov edx, 0x517ba4
jmp 0x4fe0e9
cmp eax, 0x10
jne 0x4fe0d8
mov edx, 0x517b8c
jmp 0x4fe0e9
cmp eax, 0x20
jne 0x4fe0e9
mov edx, 0x517b84
jmp 0x4fe0e9
mov edx, 0x517b7c
push dword [esi + 4]
or dword [ebp - 0x60], 0xffffffff
push edx
lea eax, [ebp + 0xd4]
push 0x517b5c
push eax
call 0x5d15c3
add esp, 0x10
lea eax, [ebp + 0xd4]
push eax
lea ecx, [esi + 0x10]
call fcn.004f3b1a
jmp 0x4fe04a
sub edi, dword [ebx + 0xc]
dec edi
jmp 0x4fe047
sub edi, dword [ebx + 0xc]
mov dword [ebp - 0x60], 4
dec edi
jmp 0x4fe047