Function at 0x522dd0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push esi
sub esp, 0x44
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov byte [ebp - 6], 0
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], ecx
mov byte [ebp - 7], 1
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0xffffffff
je 0x522e0f
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x7c
je 0x522e0f
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x29
jne 0x522e1c
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x10], 0
je 0x522e1c
mov al, byte [ebp - 6]
and al, 1
mov byte [ebp - 5], al
jmp 0x523155
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x29
jne 0x522e56
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x58]
and ecx, 0x10000000
cmp ecx, 0
jne 0x522e56
mov eax, 5
mov ecx, dword [ebp - 0x10]
mov dword [esp], ecx
mov dword [esp + 4], 5
mov dword [ebp - 0x14], eax
call fcn.005228e4
jmp 0x523139
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x2e
jne 0x522e7d
mov eax, dword [ebp - 0x10]
add eax, 0x2c
mov dword [esp], eax
call fcn.00523588
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00523348
jmp 0x523137
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x5c
jne 0x522f58
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00523348
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0xffffffff
jne 0x522ebe
mov eax, 2
mov ecx, dword [ebp - 0x10]
mov dword [esp], ecx
mov dword [esp + 4], 2
mov dword [ebp - 0x18], eax
call fcn.005228e4
jmp 0x522f53
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x58]
and ecx, 0x80
cmp ecx, 0
je 0x522efa
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax + 0x50]
cmp ecx, 0x62
jne 0x522efa
mov eax, dword [ebp - 0x10]
add eax, 0x2c
mov dword [esp], eax
call fcn.005235b8
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00523348
mov byte [ebp - 7], 0
jmp 0x522f51
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x58]
and ecx, 0x80
cmp ecx, 0
je 0x522f44
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax + 0x50]
cmp ecx, 0x42
jne 0x522f44
mov eax, dword [ebp - 0x10]
add eax, 0x2c
mov dword [esp], eax
call fcn.005235b8
mov eax, dword [ebp - 0x10]
add eax, 0x2c
mov dword [esp], eax
call fcn.005235e8
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00523348
mov byte [ebp - 7], 0
jmp 0x522f4f
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00523620
jmp 0x522f51
jmp 0x522f53
jmp 0x523135
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x5b
jne 0x522fa7
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00523348
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.005237e4
mov eax, 0x5d
mov ecx, 4
mov edx, dword [ebp - 0x10]
mov dword [esp], edx
mov dword [esp + 4], 0x5d
mov dword [esp + 8], 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], ecx
call fcn.00523878
jmp 0x523133
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x28
jne 0x522ffb
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00523348
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.005238c4
mov ecx, 0x29
mov edx, 5
and al, 1
mov byte [ebp - 7], al
mov esi, dword [ebp - 0x10]
mov dword [esp], esi
mov dword [esp + 4], 0x29
mov dword [esp + 8], 5
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], ecx
call fcn.00523878
jmp 0x523131
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x5e
jne 0x523026
mov eax, dword [ebp - 0x10]
add eax, 0x2c
mov dword [esp], eax
call fcn.00523a4c
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00523348
mov byte [ebp - 7], 0
jmp 0x52312f
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x24
jne 0x523051
mov eax, dword [ebp - 0x10]
add eax, 0x2c
mov dword [esp], eax
call fcn.00523a7c
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00523348
mov byte [ebp - 7], 0
jmp 0x52312d
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x2a
je 0x523075
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x2b
je 0x523075
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x3f
je 0x523075
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x7b
jne 0x523095
mov eax, 0xa
mov ecx, dword [ebp - 0x10]
mov dword [esp], ecx
mov dword [esp + 4], 0xa
mov dword [ebp - 0x2c], eax
call fcn.005228e4
jmp 0x52312b
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x7d
jne 0x5230cc
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x58]
and ecx, 0x10000000
cmp ecx, 0
jne 0x5230cc
mov eax, 6
mov ecx, dword [ebp - 0x10]
mov dword [esp], ecx
mov dword [esp + 4], 6
mov dword [ebp - 0x30], eax
call fcn.005228e4
jmp 0x523129
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x54], 0x5d
jne 0x523103
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x58]
and ecx, 0x10000000
cmp ecx, 0
jne 0x523103
mov eax, 4
mov ecx, dword [ebp - 0x10]
mov dword [esp], ecx
mov dword [esp + 4], 4
mov dword [ebp - 0x34], eax
call fcn.005228e4
jmp 0x523127
mov eax, dword [ebp - 0x10]
add eax, 0x2c
mov dword [esp], eax
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax + 0x50]
mov dword [esp + 4], ecx
call fcn.00523aac
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00523348
jmp 0x523129
jmp 0x52312b
jmp 0x52312d
jmp 0x52312f
jmp 0x523131
jmp 0x523133
jmp 0x523135
jmp 0x523137
jmp 0x523139
jmp 0x52313b
test byte [ebp - 7], 1
je 0x52314c
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00523b90
mov byte [ebp - 6], 1
jmp 0x522de7
mov al, byte [ebp - 5]
and al, 1
movzx eax, al
add esp, 0x44
pop esi
pop ebp
ret