Function at 0x5775b4
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov ecx, 5
push 0
push 0
dec ecx
jne 0x5775bc
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5780cb
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov edx, eax
sub edx, 2
movzx edx, word [edx]
cmp edx, 0x2e
jg 0x577644
je 0x57771d
cmp edx, 0x28
jg 0x57762c
je 0x577afc
sub edx, 1
jb 0x577c5e
sub edx, 0x23
je 0x5776cb
jmp 0x577eaf
sub edx, 0x29
je 0x577c5e
dec edx
sub edx, 2
jb 0x577c6f
jmp 0x577eaf
cmp edx, 0x5c
jg 0x577666
je 0x577c80
sub edx, 0x3f
je 0x577c6f
sub edx, 0x1c
je 0x577767
jmp 0x577eaf
sub edx, 0x5e
je 0x577679
sub edx, 0x1e
je 0x577c5e
jmp 0x577eaf
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x10
je 0x5776a3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x108]
xor edx, edx
call fcn.00405714
jne 0x5776b7
mov eax, dword [ebp - 4]
cmp byte [eax + 0x10c], 0
jne 0x5776b7
mov dx, 1
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
jmp 0x5780ad
mov dx, 0x22
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
jmp 0x5780ad
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x10
je 0x5776f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x108]
xor edx, edx
call fcn.00405714
jne 0x577709
mov eax, dword [ebp - 4]
cmp byte [eax + 0x10c], 0
jne 0x577709
mov dx, 2
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
jmp 0x5780ad
mov dx, 0x23
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
jmp 0x5780ad
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 4
je 0x57774d
mov dx, 3
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x5780ad
mov dx, 0x24
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
or dword [eax], 1
jmp 0x5780ad
cmp word [eax], 0x5e
jne 0x5777a3
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 1
je 0x577789
push ebp
mov ax, 0x16
call fcn.005773c8
pop ecx
mov dword [ebp - 8], eax
jmp 0x577797
push ebp
mov ax, 5
call fcn.005773c8
pop ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
jmp 0x5777cd
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 1
je 0x5777bf
push ebp
mov ax, 0x15
call fcn.005773c8
pop ecx
mov dword [ebp - 8], eax
jmp 0x5777cd
push ebp
mov ax, 4
call fcn.005773c8
pop ecx
mov dword [ebp - 8], eax
mov byte [ebp - 0xd], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
cmp ax, 0x5d
jne 0x577a92
push ebp
call fcn.005773f4
pop ecx
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
jmp 0x577a92
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0xc0]
cmp word [esi], 0x2d
jne 0x5779ce
mov eax, esi
add eax, 2
cmp word [eax], 0
je 0x5779ce
add esi, 2
cmp word [esi], 0x5d
je 0x5779ce
cmp byte [ebp - 0xd], 0
je 0x5779ce
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx edi, word [eax]
cmp di, 0x5c
jne 0x5778b3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
add eax, 2
movzx eax, word [eax]
cmp ax, 0x100
jae 0x577898
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
add eax, 2
movzx eax, byte [eax]
add al, 0xc0
cmp al, 0x37
ja 0x577886
and eax, 0x7f
bt dword [0x5780dc], eax
jae 0x577898
push ebp
mov ax, 0x2d
call fcn.005773dc
pop ecx
jmp 0x577a92
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
push ebp
mov eax, dword [ebp - 4]
add eax, 0xc0
call fcn.00577448
pop ecx
mov edi, eax
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 2
je 0x5778ef
cmp word [ebp - 0x10], 0x430
jne 0x5778ef
cmp di, 0x44f
jne 0x5778ef
push ebp
lea eax, [ebp - 0x18]
mov edx, 0x5be6dc
mov ecx, 0x22
call fcn.004055b4
mov eax, dword [ebp - 0x18]
call fcn.00577414
pop ecx
jmp 0x5779bf
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 2
je 0x57792b
cmp word [ebp - 0x10], 0x410
jne 0x57792b
cmp di, 0x42f
jne 0x57792b
push ebp
lea eax, [ebp - 0x1c]
mov edx, 0x5be720
mov ecx, 0x22
call fcn.004055b4
mov eax, dword [ebp - 0x1c]
call fcn.00577414
pop ecx
jmp 0x5779bf
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 2
je 0x577980
cmp word [ebp - 0x10], 0x430
jne 0x577980
cmp di, 0x42f
jne 0x577980
push ebp
lea eax, [ebp - 0x20]
mov edx, 0x5be6dc
mov ecx, 0x22
call fcn.004055b4
mov eax, dword [ebp - 0x20]
call fcn.00577414
pop ecx
push ebp
lea eax, [ebp - 0x24]
mov edx, 0x5be720
mov ecx, 0x22
call fcn.004055b4
mov eax, dword [ebp - 0x24]
call fcn.00577414
pop ecx
jmp 0x5779bf
cmp di, word [ebp - 0x10]
jae 0x577997
mov edx, 0x6d
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5780b0
inc word [ebp - 0x10]
push ebp
mov eax, edi
call fcn.005773dc
pop ecx
cmp di, word [ebp - 0x10]
jbe 0x5779bf
push ebp
movzx eax, word [ebp - 0x10]
call fcn.005773dc
pop ecx
inc word [ebp - 0x10]
cmp di, word [ebp - 0x10]
ja 0x5779aa
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
jmp 0x577a92
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x5c
jne 0x577a75
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0
jne 0x577a0b
mov edx, 0x6e
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5780b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
sub ax, 0x64
je 0x577a2b
sub ax, 0xf
je 0x577a4b
sub ax, 4
je 0x577a39
jmp 0x577a5d
push ebp
mov eax, 0x5780e8
call fcn.00577414
pop ecx
jmp 0x577a88
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xfc]
call fcn.00577414
pop ecx
jmp 0x577a88
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xf8]
call fcn.00577414
pop ecx
jmp 0x577a88
push ebp
push ebp
mov eax, dword [ebp - 4]
add eax, 0xc0
call fcn.00577448
pop ecx
call fcn.005773f4
pop ecx
jmp 0x577a88
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
call fcn.005773f4
pop ecx
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0
je 0x577ab4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x5d
jne 0x5777fd
push ebp
xor eax, eax
call fcn.005773dc
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x5d
je 0x577add
mov edx, 0x71
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5780b0
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x5780ad
cmp word [eax], 0x3f
jne 0x577c2e
add eax, 2
cmp word [eax], 0x23
jne 0x577b7a
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 4
jmp 0x577b25
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
test ax, ax
je 0x577b3c
cmp ax, 0x29
jne 0x577b1b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x29
je 0x577b5c
mov edx, 0x7d
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5780b0
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov dx, 0x13
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
jmp 0x5780ad
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0xc0]
jmp 0x577b99
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
test ax, ax
je 0x577bb0
cmp ax, 0x29
jne 0x577b8f
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0xc0]
cmp word [edi], 0x29
jne 0x577bff
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x2c]
mov edx, esi
call fcn.00405560
mov eax, dword [ebp - 0x2c]
mov ecx, edi
sub ecx, esi
sar ecx, 1
jns 0x577bdb
adc ecx, 0
mov edx, 1
call fcn.00405798
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 4]
lea ecx, [eax + 0xf0]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.00576254
test al, al
jne 0x577c10
mov edx, 0x7f
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5780b0
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov dx, 0x13
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
jmp 0x5780ad
lea ecx, [ebp - 0x14]
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00576934
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x577c4e
xor ebx, ebx
jmp 0x5780b0
mov eax, dword [ebp - 0x14]
and eax, 5
mov edx, dword [ebp - 0xc]
or dword [edx], eax
jmp 0x5780ad
mov edx, 0x72
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5780b0
mov edx, 0x73
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5780b0
cmp word [eax], 0
jne 0x577c97
mov edx, 0x74
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5780b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
cmp eax, 0x57
jg 0x577ce2
je 0x577e13
cmp eax, 0x42
jg 0x577ccb
je 0x577d23
add eax, 0xffffffcf
sub eax, 9
jb 0x577e34
sub eax, 7
je 0x577d37
jmp 0x577e8a
sub eax, 0x44
je 0x577d83
sub eax, 0xf
je 0x577dcb
jmp 0x577e8a
cmp eax, 0x64
jg 0x577cf8
je 0x577d5f
sub eax, 0x5a
je 0x577d4b
sub eax, 8
je 0x577d0f
jmp 0x577e8a
sub eax, 0x73
je 0x577da7
sub eax, 4
je 0x577def
jmp 0x577e8a
mov dx, 0x25
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
jmp 0x577ea0
mov dx, 0x26
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
jmp 0x577ea0
mov dx, 1
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
jmp 0x577ea0
mov dx, 2
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
jmp 0x577ea0
mov dx, 0xc
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x577ea0
mov dx, 0xd
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x577ea0
mov dx, 0x10
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x577ea0
mov dx, 0x11
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x577ea0
mov dx, 0xe
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x577ea0
mov dx, 0xf
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x577ea0
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 1
je 0x577e51
mov dx, 0x1d
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
jmp 0x577e60
mov dx, 0x1c
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx edx, word [eax]
sub dx, 0x30
mov eax, dword [ebp - 4]
call fcn.005765f4
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x577ea0
push ebp
push ebp
mov eax, dword [ebp - 4]
add eax, 0xc0
call fcn.00577448
pop ecx
call fcn.00577300
pop ecx
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
jmp 0x5780ad
mov eax, dword [ebp - 4]
sub dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x20
je 0x577f85
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx esi, word [eax]
cmp si, 0x23
je 0x577eef
mov edx, esi
mov eax, 0x578100
call fcn.005751f4
test eax, eax
je 0x577f85
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x23
jne 0x577f57
jmp 0x577f0a
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
test ax, ax
je 0x577f33
cmp ax, 0xd
je 0x577f33
cmp ax, 0xa
jne 0x577f00
jmp 0x577f33
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
cmp ax, 0xd
je 0x577f29
cmp ax, 0xa
je 0x577f29
jmp 0x577f71
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx edx, word [eax]
mov eax, 0x578100
call fcn.005751f4
test eax, eax
jne 0x577f4d
mov dx, 0x13
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
jmp 0x5780ad
mov edx, str._.____
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
call fcn.00576694
mov esi, eax
test esi, esi
jg 0x577fd0
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0xc0]
cmp word [esi], 0x7b
je 0x577fbe
mov edx, 0x77
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5780b0
mov edx, str._.____
mov eax, esi
add eax, 2
call fcn.00576694
inc eax
mov esi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov edx, esi
add edx, edx
add eax, edx
movzx eax, word [eax]
cmp esi, 1
jle 0x578000
cmp ax, 0x2a
je 0x577fff
cmp ax, 0x2b
je 0x577fff
cmp ax, 0x3f
je 0x577fff
cmp ax, 0x7b
jne 0x578000
dec esi
mov eax, dword [ebp - 0xc]
or dword [eax], 1
cmp esi, 1
jne 0x578011
mov eax, dword [ebp - 0xc]
or dword [eax], 2
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 1
je 0x57802e
mov dx, 0x14
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
jmp 0x578084
mov dx, 8
mov eax, dword [ebp - 4]
call fcn.005765b4
mov dword [ebp - 8], eax
jmp 0x578084
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x20
je 0x578065
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx edx, word [eax]
mov eax, 0x578100
call fcn.005751f4
test eax, eax
jne 0x578079
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx edx, word [eax]
mov eax, dword [ebp - 4]
call fcn.005765f4
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
dec esi
test esi, esi
jle 0x5780a3
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x20
je 0x57803f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x23
jne 0x57803f
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.005765f4
mov ebx, dword [ebp - 8]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5780d2
lea eax, [ebp - 0x2c]
mov edx, 6
call fcn.0040541c
ret