Function at 0x4d5520
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0xc]
sub esp, 0x10
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, dword [esi + 0x110]
mov dword [esi + 0x114], eax
mov eax, dword [ebp + 0x10]
add eax, ecx
mov dword [esi + 0x118], ecx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], eax
cmp ecx, eax
jae 0x4d587f
nop word [eax + eax]
mov ecx, dword [esi + 0x11c]
cmp byte [ecx], 0x3c
jne 0x4d57e5
lea eax, [ebp - 8]
mov dword [ebp + 0xc], 0
push eax
xor ebx, ebx
push esi
mov dword [ebp + 8], ebx
call fcn.004d5970
add esp, 8
cmp eax, 0x43
je 0x4d586d
cmp eax, 0x44
jne 0x4d55c2
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 4]
add ecx, 9
mov edx, dword [esi + 0x12c]
sub eax, 3
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
test edx, edx
je 0x4d586d
sub eax, ecx
push eax
push ecx
push esi
call edx
jmp 0x4d586a
lea eax, [ebp - 8]
push eax
push esi
call fcn.004d5970
add esp, 8
cmp eax, 0x2f
jne 0x4d5619
lea eax, [ebp - 8]
push eax
push esi
call fcn.004d5970
add esp, 8
cmp eax, 0x49
jne 0x4d58a7
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 4]
sub eax, ecx
push eax
push ecx
push esi
call fcn.004d5380
add esp, 0xc
test eax, eax
jne 0x4d58bf
lea eax, [ebp - 8]
push eax
push esi
call fcn.004d5970
add esp, 8
mov edi, eax
jmp 0x4d57cb
cmp eax, 0x21
jne 0x4d5632
lea eax, [ebp - 8]
push eax
push esi
call fcn.004d5970
mov ebx, 1
mov dword [ebp + 8], ebx
jmp 0x4d5648
cmp eax, 0x3f
jne 0x4d564b
lea eax, [ebp - 8]
push eax
push esi
call fcn.004d5970
mov dword [ebp + 0xc], 1
add esp, 8
cmp eax, 0x49
jne 0x4d58e7
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 4]
sub eax, ecx
mov dword [esi + 4], 0
push eax
push ecx
push esi
call fcn.004d5240
add esp, 0xc
test eax, eax
jne 0x4d58bf
lea eax, [ebp - 8]
push eax
push esi
call fcn.004d5970
mov edi, eax
add esp, 8
cmp edi, 0x49
je 0x4d569b
cmp edi, 0x53
jne 0x4d5756
test ebx, ebx
je 0x4d577f
lea eax, [ebp - 0x10]
push eax
push esi
call fcn.004d5970
mov edi, eax
add esp, 8
cmp edi, 0x3d
jne 0x4d5705
lea eax, [ebp - 0x10]
push eax
push esi
call fcn.004d5970
add esp, 8
cmp eax, 0x49
je 0x4d56ca
cmp eax, 0x53
jne 0x4d58cb
mov edi, dword [ebp - 4]
mov ebx, dword [ebp - 8]
sub edi, ebx
push edi
push ebx
push esi
mov dword [esi + 4], 1
call fcn.004d5240
add esp, 0xc
test eax, eax
jne 0x4d58bf
mov edx, dword [esi + 0x12c]
test edx, edx
je 0x4d572c
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
sub eax, ecx
push eax
push ecx
push esi
call edx
jmp 0x4d5721
cmp edi, 0x49
jne 0x4d5747
mov edi, dword [ebp - 4]
mov ebx, dword [ebp - 8]
sub edi, ebx
push edi
push ebx
push esi
mov dword [esi + 4], 1
call fcn.004d5240
add esp, 0xc
test eax, eax
jne 0x4d58bf
push edi
push ebx
push esi
call fcn.004d5380
add esp, 0xc
test eax, eax
jne 0x4d58bf
mov ebx, dword [ebp + 8]
jmp 0x4d5676
cmp edi, 0x53
jne 0x4d5756
test ebx, ebx
jne 0x4d5676
jmp 0x4d577f
cmp edi, 0x2f
jne 0x4d577f
push 0
push 0
push esi
call fcn.004d5380
add esp, 0xc
test eax, eax
jne 0x4d58bf
lea eax, [ebp - 8]
push eax
push esi
call fcn.004d5970
add esp, 8
mov edi, eax
cmp dword [ebp + 0xc], 0
je 0x4d57b2
cmp edi, 0x3f
jne 0x4d58d9
push 0
push 0
push esi
call fcn.004d5380
add esp, 0xc
test eax, eax
jne 0x4d58bf
lea eax, [ebp - 8]
push eax
push esi
call fcn.004d5970
add esp, 8
mov edi, eax
test ebx, ebx
je 0x4d57cb
push 0
push 0
push esi
call fcn.004d5380
add esp, 0xc
test eax, eax
jne 0x4d58bf
cmp edi, 0x3e
je 0x4d586d
push edi
call fcn.004d50b0
push eax
push str._s_unexpected____wanted_
jmp 0x4d58b3
mov edx, dword [esi + 0x120]
mov dword [ebp - 8], ecx
cmp ecx, edx
jae 0x4d5808
mov eax, dword [esi + 0x11c]
cmp byte [eax], 0x3c
je 0x4d5808
inc eax
mov dword [esi + 0x11c], eax
cmp eax, edx
jb 0x4d57f2
test byte [esi], 2
mov edx, dword [esi + 0x11c]
mov dword [ebp - 4], edx
jne 0x4d5855
cmp ecx, edx
jae 0x4d5857
nop word [eax + eax]
movzx eax, byte [ecx]
test byte [eax + 0x829f60], 8
je 0x4d5836
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, edx
jb 0x4d5820
jmp 0x4d5855
cmp ecx, edx
jae 0x4d5857
nop word [eax + eax]
movzx eax, byte [edx - 1]
test byte [eax + 0x829f60], 8
je 0x4d5855
dec edx
mov dword [ebp - 4], edx
cmp ecx, edx
jb 0x4d5840
cmp ecx, edx
je 0x4d586d
mov eax, dword [esi + 0x12c]
test eax, eax
je 0x4d586d
sub edx, ecx
push edx
push ecx
push esi
call eax
add esp, 0xc
mov eax, dword [esi + 0x11c]
cmp eax, dword [esi + 0x120]
jb 0x4d5560
mov eax, dword [esi + 0x110]
cmp byte [eax], 0
je 0x4d58f5
push str.unexpected_END_OF_INPUT
add esi, 8
push esi
call fcn.004010d7
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push eax
call fcn.004d50b0
push eax
push str._s_unexpected__ident_wanted_
add esi, 8
push esi
call fcn.004010d7
add esp, 0x10
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
push eax
call fcn.004d50b0
push eax
push str._s_unexpected__ident_or_string_wanted_
jmp 0x4d58b3
push edi
call fcn.004d50b0
push eax
push 0x56a02c
jmp 0x4d58b3
push eax
call fcn.004d50b0
push eax
push str._s_unexpected__ident_or___wanted_
jmp 0x4d58b3
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret