Function at 0x470270
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x10
push ebx
push ebp
mov ebp, dword [esp + 0x28]
push esi
push edi
mov edi, ecx
mov ax, word [ebp]
mov dword [esp + 0x10], edi
cmp ax, 0x23
jne 0x470400
mov ebx, dword [esp + 0x34]
mov esi, 1
cmp ebx, esi
jle 0x4702bc
lea ecx, [ebp + 2]
mov ax, word [ecx]
cmp ax, 0x3d
je 0x4702bc
cmp ax, 0x20
je 0x4702bc
cmp ax, 9
je 0x4702bc
inc esi
add ecx, 2
cmp esi, ebx
jl 0x47029f
cmp word [ebp + esi*2], 0x3d
jne 0x4702c5
inc esi
mov eax, dword [str.Aacute_]
mov edi, dword [esp + 0x24]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*8]
lea eax, [eax + edx*2]
mov ecx, dword [eax*4 + 0x531abc]
push ecx
push edi
call dword [0x4fd1d0]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
push 0
push esi
push ebp
push edx
mov edx, dword [ecx]
push 4
push eax
push edx
push edi
call dword [0x4fd130]
test esi, esi
mov dword [esp + 0x24], 0
jle 0x47039d
mov ebx, ebp
mov dword [esp + 0x14], esi
mov ax, word [ebx]
mov dword [esp + 0x30], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x47037c
lea eax, [esp + 0x18]
lea ecx, [esp + 0x30]
push eax
push 1
push ecx
push edi
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x470364
mov edx, dword [0x536220]
mov eax, dword [esp + 0x18]
sub eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov cx, word [esp + 0x18]
and eax, 0xffff
lea eax, [eax*2 + 0x53623c]
mov word [eax], cx
xor edx, edx
add ebx, 2
mov dx, word [eax]
mov eax, dword [esp + 0x24]
add eax, edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
dec eax
mov dword [esp + 0x14], eax
jne 0x47031a
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [eax]
add edx, ecx
cmp esi, ebx
mov dword [eax], edx
jge 0x4705ce
mov eax, dword [str.Aacute_]
lea edx, [eax + eax*4]
lea ecx, [eax + edx*8]
lea edx, [eax + ecx*2]
mov eax, dword [edx*4 + 0x531ae0]
push eax
push edi
call dword [0x4fd1d0]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x30]
sub ebx, esi
push edx
mov edx, dword [esp + 0x30]
lea eax, [ebp + esi*2]
push ebx
push eax
push ecx
mov ecx, dword [esp + 0x24]
push edx
push edi
call fcn.0046c650
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0x1c
cmp ax, 0x3b
jne 0x470451
mov eax, dword [str.Aacute_]
mov esi, dword [esp + 0x24]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*8]
lea eax, [eax + edx*2]
mov ecx, dword [eax*4 + 0x531ad8]
push ecx
push esi
call dword [0x4fd1d0]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x38]
mov ecx, dword [eax]
push ecx
mov ecx, dword [esp + 0x34]
push edx
push ebp
push ecx
push eax
push esi
mov ecx, edi
call fcn.0046c650
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0x1c
mov ebx, dword [esp + 0x34]
xor esi, esi
test ebx, ebx
jle 0x470485
mov eax, ebp
lea ecx, [ebp + 2]
cmp word [eax], 0x5e
jne 0x47047a
cmp word [ecx], 0x21
je 0x470485
lea edx, [ebx - 1]
cmp esi, edx
jge 0x47047a
inc esi
add eax, 2
add ecx, 2
inc esi
add eax, 2
add ecx, 2
cmp esi, ebx
jl 0x470460
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
push ebp
push eax
mov eax, dword [esp + 0x30]
push esi
push ecx
mov ecx, dword [esp + 0x20]
push edx
push eax
push edi
call fcn.0046c650
cmp esi, ebx
je 0x4705ce
mov eax, dword [str.Aacute_]
mov ecx, dword [esp + 0x30]
lea edx, [eax + eax*4]
lea ebx, [ecx + esi*2]
lea ecx, [eax + edx*8]
lea edx, [eax + ecx*2]
mov eax, dword [edx*4 + 0x531ac0]
push eax
push edi
call dword [0x4fd1d0]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
push 0
push 2
mov eax, dword [edx]
push ebx
push ebp
push 4
push ecx
push eax
push edi
call dword [0x4fd130]
mov dword [esp + 0x24], 0
mov ebp, ebx
mov dword [esp + 0x14], 2
mov ax, word [ebp]
mov dword [esp + 0x30], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x470569
lea ecx, [esp + 0x18]
lea edx, [esp + 0x30]
push ecx
push 1
push edx
push edi
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x470550
mov eax, dword [0x536220]
mov ecx, dword [esp + 0x18]
sub ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x30]
mov dx, word [esp + 0x18]
and ecx, 0xffff
lea eax, [ecx*2 + 0x53623c]
mov word [eax], dx
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov cx, word [eax]
mov eax, dword [esp + 0x14]
add edx, ecx
add ebp, 2
dec eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], eax
jne 0x470506
mov ebp, dword [esp + 0x28]
mov eax, dword [ebp]
add eax, edx
mov dword [ebp], eax
mov eax, 0xfffffffe
sub eax, esi
mov esi, dword [esp + 0x34]
add esi, eax
je 0x4705ce
mov ecx, dword [0x5317c4]
push ecx
push edi
call dword [0x4fd1d0]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
push edx
push eax
add ebx, 4
push esi
push ebx
push ecx
mov ecx, dword [esp + 0x24]
push ebp
push edi
call fcn.0046c650
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0x1c