Function at 0x529f10
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x52a26f
push ebx
push edi
cmp eax, 0x7c
je 0x52a26d
cmp eax, 0x29
jne 0x529f4d
cmp dword [esi + 0x10], 0
jne 0x52a26d
test dword [esi + 0x50], 0x10000000
je 0x52a27c
jmp 0x52a203
cmp eax, 0x2e
jne 0x529f61
push 5
lea ecx, [esi + 0x24]
call fcn.0052feb0
jmp 0x52a210
cmp eax, 0x5c
jne 0x52a033
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x529fab
cmp byte [eax], 0x5c
jne 0x529fa8
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x529fa6
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x529f95
mov bl, byte [ecx]
cmp bl, 0x28
je 0x529fa8
cmp bl, 0x29
je 0x529fa8
test dl, 0x10
jne 0x529fa6
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x529fa8
cmp cl, 0x7d
je 0x529fa8
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.005305a0
test byte [esi + 0x50], 0x80
je 0x52a027
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x52a010
push 4
lea ecx, [esi + 0x24]
call fcn.0052feb0
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x52a1ad
cmp byte [eax], 0x5c
jne 0x52a1aa
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x52a1a8
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x52a008
mov dl, byte [ecx]
cmp dl, 0x28
je 0x52a1aa
cmp dl, 0x29
je 0x52a1aa
test bl, 0x10
jmp 0x52a19a
cmp al, 0x42
jne 0x52a027
push 4
lea ecx, [esi + 0x24]
call fcn.0052feb0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
jmp 0x529fc9
mov ecx, esi
call fcn.0052a2a0
jmp 0x52a258
cmp eax, 0x5b
jne 0x52a0e0
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x52a07d
cmp byte [eax], 0x5c
jne 0x52a07a
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x52a078
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x52a067
mov bl, byte [ecx]
cmp bl, 0x28
je 0x52a07a
cmp bl, 0x29
je 0x52a07a
test dl, 0x10
jne 0x52a078
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x52a07a
cmp cl, 0x7d
je 0x52a07a
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.005305a0
lea ecx, [esi + 0x24]
call fcn.005297c0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x52a0a5
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.0052ff20
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x52a0c3
cmp eax, 0x5d
jne 0x52a0c3
push eax
lea ecx, [esi + 0x24]
call fcn.00529750
mov ecx, esi
call fcn.0052ff20
mov ecx, esi
call fcn.0052aaf0
cmp dword [esi + 0x4c], 0x5d
jne 0x52a28e
mov ecx, esi
call fcn.0052ff20
jmp 0x52a258
cmp eax, 0x28
jne 0x52a154
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x52a126
cmp byte [eax], 0x5c
jne 0x52a123
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x52a121
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x52a110
mov bl, byte [ecx]
cmp bl, 0x28
je 0x52a123
cmp bl, 0x29
je 0x52a123
test dl, 0x10
jne 0x52a121
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x52a123
cmp cl, 0x7d
je 0x52a123
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.005305a0
mov ecx, esi
call fcn.00530770
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x52a27c
mov ecx, esi
call fcn.0052ff20
test bl, bl
je 0x52a25f
jmp 0x52a258
cmp eax, 0x5e
jne 0x52a15d
push 2
jmp 0x52a164
cmp eax, 0x24
jne 0x52a1b9
push 3
lea ecx, [esi + 0x24]
call fcn.0052feb0
mov edx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, edx
je 0x52a1ad
cmp byte [eax], 0x5c
jne 0x52a1aa
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x52a1a8
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x52a197
mov bl, byte [ecx]
cmp bl, 0x28
je 0x52a1aa
cmp bl, 0x29
je 0x52a1aa
test dl, 0x10
jne 0x52a1a8
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x52a1aa
cmp cl, 0x7d
je 0x52a1aa
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.005305a0
jmp 0x52a25f
cmp eax, 0x2a
je 0x52a273
cmp eax, 0x2b
je 0x52a273
cmp eax, 0x3f
je 0x52a273
cmp eax, 0x7b
je 0x52a273
cmp eax, 0x7d
jne 0x52a1f1
test dword [esi + 0x50], 0x10000000
je 0x52a285
jmp 0x52a203
cmp eax, 0x5d
jne 0x52a203
test dword [esi + 0x50], 0x10000000
je 0x52a28e
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.005295a0
mov edx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, edx
je 0x52a251
cmp byte [eax], 0x5c
jne 0x52a24e
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x52a24c
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x52a23b
mov bl, byte [ecx]
cmp bl, 0x28
je 0x52a24e
cmp bl, 0x29
je 0x52a24e
test dl, 0x10
jne 0x52a24c
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x52a24e
cmp cl, 0x7d
je 0x52a24e
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.005305a0
mov ecx, esi
call fcn.005300e0
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x529f23
pop edi
pop ebx
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.0052bad0
push 5
mov ecx, esi
call fcn.0052bad0
push 6
mov ecx, esi
call fcn.0052bad0
push 4
mov ecx, esi
call fcn.0052bad0
int3