Function at 0x42c590
Capabilities:
Parse credit card information

Disassembly:
sub esp, 8
xor al, al
push ebx
push esi
mov esi, ecx
push edi
mov ecx, dword [esi + 0x4c]
cmp ecx, 0xffffffff
je 0x42c64d
cmp ecx, 0x7c
je 0x42c64d
cmp ecx, 0x29
jne 0x42c654
cmp dword [esi + 0x10], 0
jne 0x42c64d
cmp ecx, ecx
jne 0x42c654
test dword [esi + 0x50], 0x10000000
je 0x42cb02
lea edi, [esi + 0x50]
cmp ecx, 0x5d
jne 0x42c5eb
test dword [edi], 0x10000000
je 0x42cb09
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0042dbb0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x42c631
cmp byte [eax], 0x5c
jne 0x42c62f
inc eax
cmp eax, ecx
je 0x42c62f
mov edx, dword [edi]
test dl, 8
jne 0x42c61e
mov cl, byte [eax]
cmp cl, 0x28
je 0x42c62d
cmp cl, 0x29
je 0x42c62d
test dl, 0x10
jne 0x42c62f
mov al, byte [eax]
cmp al, 0x7b
je 0x42c62d
cmp al, 0x7d
jne 0x42c62f
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0042b230
mov ecx, esi
call fcn.0042d990
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x42c5a6
pop edi
pop esi
pop ebx
add esp, 8
ret
cmp ecx, 0x2e
jne 0x42c711
push 0x14
call fcn.004797cb
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], 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 eax, dword [eax + 0xc]
test eax, eax
je 0x42c6ab
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 edx, dword [esi + 8]
cmp eax, edx
je 0x42c631
cmp byte [eax], 0x5c
jne 0x42c709
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x42c707
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x42c6e7
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x42c6fc
cmp cl, 0x29
je 0x42c6fc
mov ecx, eax
test bl, 0x10
jne 0x42c707
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x42c6fc
mov edx, ecx
cmp bl, 0x7d
jne 0x42c707
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x42c631
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x42c631
cmp ecx, 0x5c
jne 0x42c8c0
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x42c767
cmp byte [eax], cl
jne 0x42c764
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x42c762
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x42c748
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x42c75d
cmp cl, 0x29
je 0x42c75d
mov ecx, eax
test bl, 0x10
jne 0x42c762
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x42c75d
mov edx, ecx
cmp bl, 0x7d
jne 0x42c762
lea eax, [edx + 1]
jmp 0x42c764
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0042b230
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x42c848
cmp byte [esi + 0x48], 0x62
jne 0x42c848
push 0x14
call fcn.004797cb
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], 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 eax, dword [eax + 0xc]
test eax, eax
je 0x42c7d4
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 edx, dword [esi + 8]
cmp eax, edx
je 0x42caba
cmp byte [eax], 0x5c
jne 0x42c839
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x42c837
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x42c810
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x42c825
cmp cl, 0x29
je 0x42c825
mov ecx, eax
test bl, 0x10
jne 0x42c837
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x42c825
mov edx, ecx
cmp bl, 0x7d
jne 0x42c837
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.0042b230
jmp 0x42c63f
mov eax, ecx
inc eax
mov ecx, esi
mov dword [esi], eax
call fcn.0042b230
jmp 0x42c63f
test eax, eax
je 0x42c8b4
cmp byte [esi + 0x48], 0x42
jne 0x42c8b4
push 0x14
call fcn.004797cb
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], 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 eax, dword [eax + 0xc]
test eax, eax
je 0x42c8a0
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 eax, ecx
mov dword [esi + 0x28], ecx
xor dword [eax + 8], 1
jmp 0x42ca80
mov ecx, esi
call fcn.0042d670
jmp 0x42c638
cmp ecx, 0x5b
jne 0x42c95e
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x42c903
cmp byte [eax], 0x5c
jne 0x42c901
inc eax
cmp eax, ecx
je 0x42c901
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x42c8f0
mov cl, byte [eax]
cmp cl, 0x28
je 0x42c8ff
cmp cl, 0x29
je 0x42c8ff
test dl, 0x10
jne 0x42c901
mov al, byte [eax]
cmp al, 0x7b
je 0x42c8ff
cmp al, 0x7d
jne 0x42c901
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0042b230
mov ecx, esi
call fcn.0042d540
cmp dword [esi + 0x4c], 0x5d
jne 0x42cb09
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x42c631
cmp byte [eax], 0x5c
jne 0x42c62f
inc eax
cmp eax, ecx
je 0x42c62f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x42c956
mov dl, byte [eax]
cmp dl, 0x28
je 0x42c62d
cmp dl, 0x29
je 0x42c62d
test cl, 0x10
jmp 0x42c621
cmp ecx, 0x28
jne 0x42ca09
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x42c9a1
cmp byte [eax], 0x5c
jne 0x42c99f
inc eax
cmp eax, ecx
je 0x42c99f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x42c98e
mov dl, byte [eax]
cmp dl, 0x28
je 0x42c99d
cmp dl, 0x29
je 0x42c99d
test cl, 0x10
jne 0x42c99f
mov al, byte [eax]
cmp al, 0x7b
je 0x42c99d
cmp al, 0x7d
jne 0x42c99f
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0042b230
mov ecx, esi
call fcn.0042d7b0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x42cb02
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x42c9f5
cmp byte [eax], 0x5c
jne 0x42c9f3
inc eax
cmp eax, ecx
je 0x42c9f3
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x42c9e2
mov dl, byte [eax]
cmp dl, 0x28
je 0x42c9f1
cmp dl, 0x29
je 0x42c9f1
test cl, 0x10
jne 0x42c9f3
mov al, byte [eax]
cmp al, 0x7b
je 0x42c9f1
cmp al, 0x7d
jne 0x42c9f3
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0042b230
test bl, bl
je 0x42c63f
jmp 0x42c638
cmp ecx, 0x5e
jne 0x42ca20
push 0x14
call fcn.004797cb
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x42ca39
cmp ecx, 0x24
jne 0x42cac6
push 0x14
call fcn.004797cb
mov ecx, eax
mov dword [ecx + 4], 3
mov dword [ecx], vtable.std::_Node_base.0
add esp, 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x42ca77
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 ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x42caba
cmp byte [eax], 0x5c
jne 0x42cab8
inc eax
cmp eax, ecx
je 0x42cab8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x42caa7
mov dl, byte [eax]
cmp dl, 0x28
je 0x42cab6
cmp dl, 0x29
je 0x42cab6
test cl, 0x10
jne 0x42cab8
mov al, byte [eax]
cmp al, 0x7b
je 0x42cab6
cmp al, 0x7d
jne 0x42cab8
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0042b230
jmp 0x42c63f
cmp ecx, 0x2a
je 0x42caf4
cmp ecx, 0x2b
je 0x42caf4
cmp ecx, 0x3f
je 0x42caf4
cmp ecx, 0x7b
je 0x42caf4
cmp ecx, 0x7d
jne 0x42c5d7
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x42cafb
jmp 0x42c5eb
push 0xa
call fcn.0042b220
push 6
call fcn.0042b220
push 5
call fcn.0042b220
push 4
call fcn.0042b220
int3