Function at 0x4227d0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, esi
call fcn.004225d0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
add ecx, eax
mov dword [esi + 0x118], eax
mov dword [esi + 0x11c], eax
mov dword [esi + 0x120], ecx
cmp eax, ecx
jae 0x422aea
jmp 0x422810
mov eax, dword [esi + 0x11c]
cmp byte [eax], 0x3c
jne 0x422a84
lea edx, [ebp - 8]
xor edi, edi
push edx
mov eax, esi
mov dword [ebp + 0xc], edi
mov dword [ebp + 8], edi
call fcn.00422200
add esp, 4
cmp eax, 0x43
je 0x422ad8
cmp eax, 0x44
jne 0x42285d
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
add eax, 9
sub edx, 3
mov dword [ebp - 4], edx
mov dword [ebp - 8], eax
sub edx, eax
push eax
jmp 0x422ace
lea eax, [ebp - 8]
push eax
mov eax, esi
call fcn.00422200
add esp, 4
cmp eax, 0x2f
jne 0x4228b7
lea ecx, [ebp - 8]
push ecx
mov eax, esi
call fcn.00422200
add esp, 4
cmp eax, 0x49
jne 0x422b12
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
sub eax, edx
push eax
mov ecx, esi
call fcn.004226a0
add esp, 4
test eax, eax
jne 0x422b29
lea ecx, [ebp - 8]
push ecx
mov eax, esi
call fcn.00422200
add esp, 4
mov edi, eax
jmp 0x422a6d
cmp eax, 0x21
jne 0x4228d0
lea edx, [ebp - 8]
push edx
mov eax, esi
call fcn.00422200
mov dword [ebp + 8], 1
jmp 0x4228e7
cmp eax, 0x3f
jne 0x4228ea
lea eax, [ebp - 8]
push eax
mov eax, esi
call fcn.00422200
mov dword [ebp + 0xc], 1
add esp, 4
cmp eax, 0x49
jne 0x422b51
mov ebx, dword [ebp - 8]
mov dword [esi + 4], edi
mov edi, dword [ebp - 4]
sub edi, ebx
mov eax, esi
call fcn.004225e0
test eax, eax
jne 0x422b29
lea ecx, [ecx]
lea ecx, [ebp - 8]
push ecx
mov eax, esi
call fcn.00422200
mov edi, eax
add esp, 4
cmp edi, 0x49
je 0x422938
cmp edi, 0x53
jne 0x4229f1
cmp dword [ebp + 8], 0
je 0x422a1c
lea edx, [ebp - 0x10]
push edx
mov eax, esi
call fcn.00422200
mov edi, eax
add esp, 4
cmp edi, 0x3d
jne 0x4229c3
lea eax, [ebp - 0x10]
push eax
mov eax, esi
call fcn.00422200
add esp, 4
cmp eax, 0x49
je 0x422969
cmp eax, 0x53
jne 0x422b35
mov ebx, dword [ebp - 8]
mov edi, dword [ebp - 4]
sub edi, ebx
mov eax, esi
mov dword [esi + 4], 1
call fcn.004225e0
test eax, eax
jne 0x422b29
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
sub edx, eax
push eax
mov ecx, esi
call fcn.00422510
add esp, 4
test eax, eax
jne 0x422b29
push edi
mov edx, ebx
mov ecx, esi
call fcn.004226a0
add esp, 4
test eax, eax
je 0x422910
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0x49
jne 0x4229e0
mov ebx, dword [ebp - 8]
mov edi, dword [ebp - 4]
sub edi, ebx
mov eax, esi
mov dword [esi + 4], 1
call fcn.004225e0
jmp 0x42299a
cmp edi, 0x53
jne 0x4229f1
cmp dword [ebp + 8], 0
jne 0x422910
jmp 0x422a1c
cmp edi, 0x2f
jne 0x422a1c
push 0
xor edx, edx
mov ecx, esi
call fcn.004226a0
add esp, 4
test eax, eax
jne 0x422b29
lea ecx, [ebp - 8]
push ecx
mov eax, esi
call fcn.00422200
add esp, 4
mov edi, eax
cmp dword [ebp + 0xc], 0
je 0x422a51
cmp edi, 0x3f
jne 0x422b42
push 0
xor edx, edx
mov ecx, esi
call fcn.004226a0
add esp, 4
test eax, eax
jne 0x422b29
lea edx, [ebp - 8]
push edx
mov eax, esi
call fcn.00422200
add esp, 4
mov edi, eax
cmp dword [ebp + 8], 0
je 0x422a6d
push 0
xor edx, edx
mov ecx, esi
call fcn.004226a0
add esp, 4
test eax, eax
jne 0x422b29
cmp edi, 0x3e
je 0x422ad8
mov eax, edi
call fcn.00422070
push eax
push str._s_unexpected____wanted_
jmp 0x422b1d
mov ecx, eax
mov dword [ebp - 8], ecx
cmp eax, dword [esi + 0x120]
jae 0x422aab
mov eax, dword [esi + 0x11c]
cmp byte [eax], 0x3c
je 0x422aab
inc eax
mov dword [esi + 0x11c], eax
cmp eax, dword [esi + 0x120]
jb 0x422a91
test byte [esi], 2
mov edx, dword [esi + 0x11c]
mov dword [ebp - 4], edx
jne 0x422ac7
lea eax, [ebp - 8]
call fcn.00422140
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
cmp ecx, edx
je 0x422ad8
sub edx, ecx
push ecx
mov ecx, esi
call fcn.00422510
add esp, 4
mov ecx, dword [esi + 0x11c]
cmp ecx, dword [esi + 0x120]
jb 0x422810
mov edx, dword [esi + 0x110]
cmp byte [edx], 0
je 0x422b5e
push str.unexpected_END_OF_INPUT
add esi, 8
push esi
call fcn.0042aebb
add esp, 8
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00422070
push eax
push str._s_unexpected__ident_wanted_
add esi, 8
push esi
call fcn.0042aebb
add esp, 0xc
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00422070
push eax
push str._s_unexpected__ident_or_string_wanted_
jmp 0x422b1d
mov eax, edi
call fcn.00422070
push eax
push 0x466688
jmp 0x422b1d
call fcn.00422070
push eax
push str._s_unexpected__ident_or___wanted_
jmp 0x422b1d
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret