Function at 0x513a50
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5758d0
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
mov eax, dword [0x5d8024]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 0x4c]
xor cl, cl
cmp eax, 0xffffffff
je 0x513b2d
cmp eax, 0x7c
je 0x513b2d
cmp eax, 0x29
jne 0x513b40
cmp dword [esi + 0x10], 0
jne 0x513b2d
test dword [esi + 0x50], 0x10000000
je 0x513f80
cmp eax, 0x5d
jne 0x513ac2
test dword [esi + 0x50], 0x10000000
je 0x513f72
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00515910
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x513b11
cmp word [eax], 0x5c
jne 0x513b0e
add eax, 2
cmp eax, ecx
je 0x513b0e
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x513afa
movzx edx, word [eax]
cmp edx, 0x28
je 0x513b0c
cmp edx, 0x29
je 0x513b0c
test cl, 0x10
jne 0x513b0e
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x513b0c
cmp ecx, 0x7d
jne 0x513b0e
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.005123d0
mov ecx, esi
call fcn.005156d0
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x513a87
mov al, cl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x2e
jne 0x513bae
push 0x14
call fcn.005217c3
mov ecx, eax
add esp, 4
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0
mov dword [ecx], 0x59cfc0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x513ba3
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
jmp 0x513acf
cmp eax, 0x5c
jne 0x513d42
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x513bf9
cmp word [eax], 0x5c
jne 0x513bf6
add eax, 2
cmp eax, ecx
je 0x513bf6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x513be2
movzx edx, word [eax]
cmp edx, 0x28
je 0x513bf4
cmp edx, 0x29
je 0x513bf4
test cl, 0x10
jne 0x513bf6
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x513bf4
cmp ecx, 0x7d
jne 0x513bf6
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.005123d0
test byte [esi + 0x50], 0x80
je 0x513d36
cmp word [esi + 0x48], 0x62
jne 0x513cc0
push 0x14
call fcn.005217c3
mov ecx, eax
add esp, 4
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 1
mov dword [ecx], 0x59cfc0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x513c73
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x513f34
cmp word [eax], 0x5c
jne 0x513f31
add eax, 2
cmp eax, ecx
je 0x513f31
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x513cb8
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x513f2f
cmp ecx, 0x29
je 0x513f2f
test dl, 0x10
jmp 0x513f20
cmp word [esi + 0x48], 0x42
jne 0x513d36
push 0x14
call fcn.005217c3
mov ecx, eax
add esp, 4
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], 2
mov dword [ecx], 0x59cfc0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x513d25
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov eax, ecx
mov dword [esi + 0x28], ecx
xor dword [eax + 8], 1
jmp 0x513c79
mov ecx, esi
call fcn.005153c0
jmp 0x513b18
cmp eax, 0x5b
jne 0x513da6
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x513d89
cmp word [eax], 0x5c
jne 0x513d86
add eax, 2
cmp eax, ecx
je 0x513d86
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x513d72
movzx edx, word [eax]
cmp edx, 0x28
je 0x513d84
cmp edx, 0x29
je 0x513d84
test cl, 0x10
jne 0x513d86
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x513d84
cmp ecx, 0x7d
jne 0x513d86
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.005123d0
mov ecx, esi
call fcn.005152e0
cmp dword [esi + 0x4c], 0x5d
jne 0x513f72
jmp 0x513acf
cmp eax, 0x28
jne 0x513e61
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x513df1
cmp word [eax], 0x5c
jne 0x513dee
add eax, 2
cmp eax, ecx
je 0x513dee
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x513dda
movzx edx, word [eax]
cmp edx, 0x28
je 0x513dec
cmp edx, 0x29
je 0x513dec
test cl, 0x10
jne 0x513dee
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x513dec
cmp ecx, 0x7d
jne 0x513dee
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.005123d0
mov ecx, esi
call fcn.00515550
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x513f80
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x513e4d
cmp word [eax], 0x5c
jne 0x513e4a
add eax, 2
cmp eax, ecx
je 0x513e4a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x513e36
movzx edx, word [eax]
cmp edx, 0x28
je 0x513e48
cmp edx, 0x29
je 0x513e48
test cl, 0x10
jne 0x513e4a
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x513e48
cmp ecx, 0x7d
jne 0x513e4a
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.005123d0
test bl, bl
je 0x513b1f
jmp 0x513b18
cmp eax, 0x5e
jne 0x513e85
push 0x14
call fcn.005217c3
mov ecx, eax
add esp, 4
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 4], 3
mov dword [ecx + 4], 2
jmp 0x513eab
cmp eax, 0x24
jne 0x513f40
push 0x14
call fcn.005217c3
mov ecx, eax
add esp, 4
mov dword [ebp - 0x20], ecx
mov dword [ebp - 4], 4
mov dword [ecx + 4], 3
mov dword [ecx], 0x59cfc0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x513eec
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x513f34
cmp word [eax], 0x5c
jne 0x513f31
add eax, 2
cmp eax, ecx
je 0x513f31
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x513f1d
movzx edx, word [eax]
cmp edx, 0x28
je 0x513f2f
cmp edx, 0x29
je 0x513f2f
test cl, 0x10
jne 0x513f31
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x513f2f
cmp ecx, 0x7d
jne 0x513f31
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.005123d0
jmp 0x513b1f
cmp eax, 0x2a
je 0x513f6b
cmp eax, 0x2b
je 0x513f6b
cmp eax, 0x3f
je 0x513f6b
cmp eax, 0x7b
je 0x513f6b
cmp eax, 0x7d
jne 0x513ab0
test dword [esi + 0x50], 0x10000000
je 0x513f79
jmp 0x513ac2
push 0xa
call fcn.005123c0
push 4
call fcn.005123c0
push 6
call fcn.005123c0
push 5
call fcn.005123c0
int3