Function at 0x4478f0
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
cmp dword [esi + 0x4c], 0xffffffff
je 0x447c84
push ebx
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x447c83
cmp eax, 0x29
jne 0x447928
cmp dword [esi + 0x10], 0
jne 0x447c83
test dword [esi + 0x50], 0x10000000
je 0x447c88
cmp eax, 0x2e
jne 0x4479d4
push 0x14
call fcn.00556a0f
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x447965
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x447967
xor ecx, ecx
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x447983
mov dword [ecx + 0xc], eax
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 0x4479c8
cmp byte [eax], 0x5c
jne 0x4479c6
inc eax
cmp eax, ecx
je 0x4479c6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4479b3
mov dl, byte [eax]
cmp dl, 0x28
je 0x4479c4
cmp dl, 0x29
je 0x4479c4
test cl, 0x10
jne 0x4479c6
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4479c4
cmp cl, 0x7d
jne 0x4479c6
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0044ab80
jmp 0x447c70
cmp eax, 0x5c
jne 0x447af1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x447a19
cmp byte [eax], 0x5c
jne 0x447a17
inc eax
cmp eax, ecx
je 0x447a17
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x447a04
mov dl, byte [eax]
cmp dl, 0x28
je 0x447a15
cmp dl, 0x29
je 0x447a15
test cl, 0x10
jne 0x447a17
mov cl, byte [eax]
cmp cl, 0x7b
je 0x447a15
cmp cl, 0x7d
jne 0x447a17
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0044ab80
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x447a82
cmp byte [esi + 0x48], 0x62
jne 0x447a82
push 4
lea ecx, [esi + 0x24]
call fcn.0044a3f0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x447a76
cmp byte [eax], 0x5c
jne 0x447a74
inc eax
cmp eax, ecx
je 0x447a74
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x447a61
mov cl, byte [eax]
cmp cl, 0x28
je 0x447a72
cmp cl, 0x29
je 0x447a72
test dl, 0x10
jne 0x447a74
mov cl, byte [eax]
cmp cl, 0x7b
je 0x447a72
cmp cl, 0x7d
jne 0x447a74
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0044ab80
jmp 0x447c77
test eax, eax
je 0x447ae5
cmp byte [esi + 0x48], 0x42
jne 0x447ae5
push 4
lea ecx, [esi + 0x24]
call fcn.0044a3f0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x447ad9
cmp byte [eax], 0x5c
jne 0x447ad7
inc eax
cmp eax, ecx
je 0x447ad7
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x447ac4
mov cl, byte [eax]
cmp cl, 0x28
je 0x447ad5
cmp cl, 0x29
je 0x447ad5
test dl, 0x10
jne 0x447ad7
mov cl, byte [eax]
cmp cl, 0x7b
je 0x447ad5
cmp cl, 0x7d
jne 0x447ad7
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0044ab80
jmp 0x447c77
mov ecx, esi
call fcn.00447cb0
jmp 0x447c70
cmp eax, 0x5b
jne 0x447b96
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x447b36
cmp byte [eax], 0x5c
jne 0x447b34
inc eax
cmp eax, ecx
je 0x447b34
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x447b21
mov dl, byte [eax]
cmp dl, 0x28
je 0x447b32
cmp dl, 0x29
je 0x447b32
test cl, 0x10
jne 0x447b34
mov cl, byte [eax]
cmp cl, 0x7b
je 0x447b32
cmp cl, 0x7d
jne 0x447b34
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0044ab80
mov ecx, esi
call fcn.00448290
cmp dword [esi + 0x4c], 0x5d
jne 0x447c8f
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x447b8a
cmp byte [eax], 0x5c
jne 0x447b88
inc eax
cmp eax, ecx
je 0x447b88
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x447b75
mov dl, byte [eax]
cmp dl, 0x28
je 0x447b86
cmp dl, 0x29
je 0x447b86
test cl, 0x10
jne 0x447b88
mov cl, byte [eax]
cmp cl, 0x7b
je 0x447b86
cmp cl, 0x7d
jne 0x447b88
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0044ab80
jmp 0x447c70
cmp eax, 0x28
jne 0x447bfc
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x447bd7
cmp byte [eax], 0x5c
jne 0x447bd5
inc eax
cmp eax, ecx
je 0x447bd5
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x447bc2
mov dl, byte [eax]
cmp dl, 0x28
je 0x447bd3
cmp dl, 0x29
je 0x447bd3
test cl, 0x10
jne 0x447bd5
mov cl, byte [eax]
cmp cl, 0x7b
je 0x447bd3
cmp cl, 0x7d
jne 0x447bd5
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0044ab80
mov ecx, esi
call fcn.0044ada0
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.004497c0
test bl, bl
je 0x447c77
jmp 0x447c70
cmp eax, 0x5e
jne 0x447c14
push 2
lea ecx, [esi + 0x24]
call fcn.0044a3f0
mov ecx, esi
call fcn.0044a460
jmp 0x447c77
cmp eax, 0x24
jne 0x447c2c
push 3
lea ecx, [esi + 0x24]
call fcn.0044a3f0
mov ecx, esi
call fcn.0044a460
jmp 0x447c77
cmp eax, 0x2a
je 0x447c9d
cmp eax, 0x2b
je 0x447c9d
cmp eax, 0x3f
je 0x447c9d
cmp eax, 0x7b
je 0x447c9d
cmp eax, 0x7d
jne 0x447c4e
test dword [esi + 0x50], 0x10000000
je 0x447c96
cmp eax, 0x5d
jne 0x447c5c
test dword [esi + 0x50], 0x10000000
je 0x447c8f
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00447130
mov ecx, esi
call fcn.0044a460
mov ecx, esi
call fcn.0044a4b0
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x447900
pop ebx
mov al, cl
pop esi
ret
push 5
call fcn.00541bb8
push 4
call fcn.00541bb8
push 6
call fcn.00541bb8
push 0xa
call fcn.00541bb8
int3