Function at 0x450850
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x450efe
nop dword [eax + eax]
cmp eax, 0x7c
je 0x450efe
cmp eax, 0x29
jne 0x450895
cmp dword [esi + 0x10], 0
jne 0x450efe
test dword [esi + 0x50], 0x10000000
je 0x450f0d
cmp eax, 0x2e
jne 0x450953
push 0x14
call fcn.00474630
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x4508ee
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 0x450ee2
cmp byte [eax], 0x5c
jne 0x450ee0
inc eax
cmp eax, ecx
je 0x450ed8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x45092f
mov dl, byte [eax]
cmp dl, 0x28
je 0x450ed4
cmp dl, 0x29
je 0x450ed4
test cl, 0x10
jne 0x450ed8
mov cl, byte [eax]
cmp cl, 0x7b
je 0x450ed4
cmp cl, 0x7d
jne 0x450ed8
mov cl, 1
jmp 0x450eda
cmp eax, 0x5c
jne 0x450b4f
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4509a2
cmp byte [eax], 0x5c
jne 0x4509a0
inc eax
cmp eax, ecx
je 0x450998
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x450983
mov dl, byte [eax]
cmp dl, 0x28
je 0x450994
cmp dl, 0x29
je 0x450994
test cl, 0x10
jne 0x450998
mov cl, byte [eax]
cmp cl, 0x7b
je 0x450994
cmp cl, 0x7d
jne 0x450998
mov cl, 1
jmp 0x45099a
xor cl, cl
test cl, cl
je 0x4509a0
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0044e340
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x450a76
cmp byte [esi + 0x48], 0x62
jne 0x450a76
push 0x14
call fcn.00474630
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x450a11
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 0x450e3b
cmp byte [eax], 0x5c
jne 0x450e39
inc eax
cmp eax, ecx
je 0x450e31
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x450a52
mov cl, byte [eax]
cmp cl, 0x28
je 0x450e2d
cmp cl, 0x29
je 0x450e2d
test dl, 0x10
jne 0x450e31
mov cl, byte [eax]
cmp cl, 0x7b
je 0x450e2d
cmp cl, 0x7d
jne 0x450e31
mov cl, 1
jmp 0x450e33
test eax, eax
je 0x450b43
cmp byte [esi + 0x48], 0x42
jne 0x450b43
push 0x14
call fcn.00474630
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x450ad8
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
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x450e3b
cmp byte [eax], 0x5c
jne 0x450e39
inc eax
cmp eax, ecx
je 0x450e31
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x450b1f
mov cl, byte [eax]
cmp cl, 0x28
je 0x450e2d
cmp cl, 0x29
je 0x450e2d
test dl, 0x10
jne 0x450e31
mov cl, byte [eax]
cmp cl, 0x7b
je 0x450e2d
cmp cl, 0x7d
jne 0x450e31
mov cl, 1
jmp 0x450e33
mov ecx, esi
call fcn.004524f0
jmp 0x450ee9
cmp eax, 0x5b
jne 0x450c15
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x450b9e
cmp byte [eax], 0x5c
jne 0x450b9c
inc eax
cmp eax, ecx
je 0x450b94
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x450b7f
mov dl, byte [eax]
cmp dl, 0x28
je 0x450b90
cmp dl, 0x29
je 0x450b90
test cl, 0x10
jne 0x450b94
mov cl, byte [eax]
cmp cl, 0x7b
je 0x450b90
cmp cl, 0x7d
jne 0x450b94
mov cl, 1
jmp 0x450b96
xor cl, cl
test cl, cl
je 0x450b9c
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0044e340
mov ecx, esi
call fcn.004523b0
cmp dword [esi + 0x4c], 0x5d
jne 0x450f14
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x450ee2
cmp byte [eax], 0x5c
jne 0x450ee0
inc eax
cmp eax, ecx
je 0x450ed8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x450bf1
mov dl, byte [eax]
cmp dl, 0x28
je 0x450ed4
cmp dl, 0x29
je 0x450ed4
test cl, 0x10
jne 0x450ed8
mov cl, byte [eax]
cmp cl, 0x7b
je 0x450ed4
cmp cl, 0x7d
jne 0x450ed8
mov cl, 1
jmp 0x450eda
cmp eax, 0x28
jne 0x450cd8
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x450c64
cmp byte [eax], 0x5c
jne 0x450c62
inc eax
cmp eax, ecx
je 0x450c5a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x450c45
mov dl, byte [eax]
cmp dl, 0x28
je 0x450c56
cmp dl, 0x29
je 0x450c56
test cl, 0x10
jne 0x450c5a
mov cl, byte [eax]
cmp cl, 0x7b
je 0x450c56
cmp cl, 0x7d
jne 0x450c5a
mov cl, 1
jmp 0x450c5c
xor cl, cl
test cl, cl
je 0x450c62
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0044e340
mov ecx, esi
call fcn.00452640
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x450f0d
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x450cc4
cmp byte [eax], 0x5c
jne 0x450cc2
inc eax
cmp eax, ecx
je 0x450cba
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x450ca5
mov dl, byte [eax]
cmp dl, 0x28
je 0x450cb6
cmp dl, 0x29
je 0x450cb6
test cl, 0x10
jne 0x450cba
mov cl, byte [eax]
cmp cl, 0x7b
je 0x450cb6
cmp cl, 0x7d
jne 0x450cba
mov cl, 1
jmp 0x450cbc
xor cl, cl
test cl, cl
je 0x450cc2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0044e340
test bl, bl
je 0x450ef0
jmp 0x450ee9
cmp eax, 0x5e
jne 0x450d96
push 0x14
call fcn.00474630
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 2
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x450d31
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 0x450e3b
cmp byte [eax], 0x5c
jne 0x450e39
inc eax
cmp eax, ecx
je 0x450e31
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x450d72
mov dl, byte [eax]
cmp dl, 0x28
je 0x450e2d
cmp dl, 0x29
je 0x450e2d
test cl, 0x10
jne 0x450e31
mov cl, byte [eax]
cmp cl, 0x7b
je 0x450e2d
cmp cl, 0x7d
jne 0x450e31
mov cl, 1
jmp 0x450e33
cmp eax, 0x24
jne 0x450e47
push 0x14
call fcn.00474630
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 3
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x450def
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 0x450e3b
cmp byte [eax], 0x5c
jne 0x450e39
inc eax
cmp eax, ecx
je 0x450e31
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x450e1c
mov dl, byte [eax]
cmp dl, 0x28
je 0x450e2d
cmp dl, 0x29
je 0x450e2d
test cl, 0x10
jne 0x450e31
mov cl, byte [eax]
cmp cl, 0x7b
je 0x450e2d
cmp cl, 0x7d
jne 0x450e31
mov cl, 1
jmp 0x450e33
xor cl, cl
test cl, cl
je 0x450e39
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0044e340
jmp 0x450ef0
cmp eax, 0x2a
je 0x450f06
cmp eax, 0x2b
je 0x450f06
cmp eax, 0x3f
je 0x450f06
cmp eax, 0x7b
je 0x450f06
cmp eax, 0x7d
jne 0x450e7d
test dword [esi + 0x50], 0x10000000
je 0x450f1b
cmp eax, 0x5d
jne 0x450e8f
test dword [esi + 0x50], 0x10000000
je 0x450f14
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00452a00
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x450ee2
cmp byte [eax], 0x5c
jne 0x450ee0
inc eax
cmp eax, ecx
je 0x450ed8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x450ec3
mov dl, byte [eax]
cmp dl, 0x28
je 0x450ed4
cmp dl, 0x29
je 0x450ed4
test cl, 0x10
jne 0x450ed8
mov cl, byte [eax]
cmp cl, 0x7b
je 0x450ed4
cmp cl, 0x7d
jne 0x450ed8
mov cl, 1
jmp 0x450eda
xor cl, cl
test cl, cl
je 0x450ee0
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0044e340
mov ecx, esi
call fcn.004527d0
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x450870
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.0044e330
push 5
call fcn.0044e330
push 4
call fcn.0044e330
push 6
call fcn.0044e330
int3