Function at 0x4352a0
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x4c523c]
mov cl, byte [eax + 0xf4]
xor eax, eax
push ebx
cmp cl, al
je 0x43555c
mov edx, dword [0x4c5760]
cmp byte [edx + 0xf4], al
je 0x435497
mov ebx, dword [ebp + 8]
lea ecx, [ebx - 0x30]
cmp ecx, 9
ja 0x435487
mov ecx, dword [0x4b5720]
cmp ecx, 6
jge 0x43530e
lea edx, [eax + 1]
cmp byte [0x4b571f], al
jne 0x435302
mov eax, dword [ecx*4 + 0x4c52a0]
mov byte [eax + 0xf4], dl
jmp 0x43554a
mov ecx, dword [ecx*4 + 0x4c5164]
jmp 0x435544
cmp byte [0x4b571f], al
jne 0x43540d
xor ecx, ecx
lea edx, [ecx + 1]
nop
mov bl, byte [ecx + str.111111]
cmp bl, byte [ecx + 0x4b2808]
jne 0x435396
add ecx, edx
cmp ecx, 6
jl 0x435320
mov ecx, dword [0x4c5164]
mov dword [0x4b5720], eax
mov byte [0x4b571f], dl
mov byte [ecx + 0xf4], al
mov ecx, dword [0x4c5168]
mov byte [ecx + 0xf4], al
mov ecx, dword [0x4c516c]
mov byte [ecx + 0xf4], al
mov ecx, dword [0x4c5170]
mov byte [ecx + 0xf4], al
mov ecx, dword [0x4c5174]
mov byte [ecx + 0xf4], al
mov ecx, dword [0x4c5178]
mov byte [ecx + 0xf4], al
mov eax, dword [0x4b5720]
mov ecx, dword [eax*4 + 0x4c5164]
jmp 0x4353ef
mov ecx, dword [0x4c52a0]
mov dword [0x4b5720], eax
mov byte [ecx + 0xf4], al
mov ecx, dword [0x4c52a4]
mov byte [ecx + 0xf4], al
mov ecx, dword [0x4c52a8]
mov byte [ecx + 0xf4], al
mov ecx, dword [0x4c52ac]
mov byte [ecx + 0xf4], al
mov ecx, dword [0x4c52b0]
mov byte [ecx + 0xf4], al
mov ecx, dword [0x4c52b4]
mov byte [ecx + 0xf4], al
mov eax, dword [0x4b5720]
mov ecx, dword [eax*4 + 0x4c52a0]
mov al, byte [ebp + 8]
mov byte [ecx + 0xf4], dl
mov ecx, dword [0x4b5720]
add dword [0x4b5720], edx
mov byte [ecx + 0x4b2808], al
pop ebx
pop ebp
ret
mov edx, dword [0x4c5164]
mov dword [0x4b5720], eax
mov byte [edx + 0xf4], al
mov ecx, dword [0x4c5168]
mov byte [ecx + 0xf4], al
mov edx, dword [0x4c516c]
mov byte [edx + 0xf4], al
mov ecx, dword [0x4c5170]
mov byte [ecx + 0xf4], al
mov edx, dword [0x4c5174]
mov byte [edx + 0xf4], al
mov ecx, dword [0x4c5178]
mov byte [ecx + 0xf4], al
mov edx, dword [0x4b5720]
mov eax, dword [edx*4 + 0x4c5164]
mov edx, 1
mov byte [eax + 0xf4], dl
mov ecx, dword [0x4b5720]
add dword [0x4b5720], edx
mov byte [ecx + 0x4b2808], bl
pop ebx
pop ebp
ret
cmp ebx, 0xd
jne 0x43555c
pop ebx
pop ebp
jmp fcn.00435080
cmp cl, al
je 0x43555c
mov ebx, dword [ebp + 8]
lea edx, [ebx - 0x30]
cmp edx, 9
ja 0x435487
mov ecx, dword [0x4b5720]
cmp ecx, 6
jge 0x4354e6
mov edx, 1
cmp byte [0x4b571f], al
jne 0x4354d5
mov eax, dword [ecx*4 + 0x4c52a0]
mov byte [eax + 0xf4], dl
mov ecx, dword [0x4b5720]
mov byte [ecx + 0x4b2808], bl
add ecx, edx
mov dword [0x4b5720], ecx
pop ebx
pop ebp
ret
mov ecx, dword [0x4c52a0]
mov dword [0x4b5720], eax
mov byte [ecx + 0xf4], al
mov edx, dword [0x4c52a4]
mov byte [edx + 0xf4], al
mov ecx, dword [0x4c52a8]
mov byte [ecx + 0xf4], al
mov edx, dword [0x4c52ac]
mov byte [edx + 0xf4], al
mov ecx, dword [0x4c52b0]
mov byte [ecx + 0xf4], al
mov edx, dword [0x4c52b4]
mov byte [edx + 0xf4], al
mov eax, dword [0x4b5720]
mov ecx, dword [eax*4 + 0x4c52a0]
mov edx, 1
mov byte [ecx + 0xf4], dl
mov eax, dword [0x4b5720]
mov byte [eax + 0x4b2808], bl
add eax, edx
mov dword [0x4b5720], eax
pop ebx
pop ebp
ret