Function at 0x4225c0
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 0x42267d
cmp ecx, 0x7c
je 0x42267d
cmp ecx, 0x29
jne 0x422684
cmp dword [esi + 0x10], 0
jne 0x42267d
cmp ecx, ecx
jne 0x422684
test dword [esi + 0x50], 0x10000000
je 0x422b32
lea edi, [esi + 0x50]
cmp ecx, 0x5d
jne 0x42261b
test dword [edi], 0x10000000
je 0x422b39
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00423be0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x422661
cmp byte [eax], 0x5c
jne 0x42265f
inc eax
cmp eax, ecx
je 0x42265f
mov edx, dword [edi]
test dl, 8
jne 0x42264e
mov cl, byte [eax]
cmp cl, 0x28
je 0x42265d
cmp cl, 0x29
je 0x42265d
test dl, 0x10
jne 0x42265f
mov al, byte [eax]
cmp al, 0x7b
je 0x42265d
cmp al, 0x7d
jne 0x42265f
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00421230
mov ecx, esi
call fcn.004239c0
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x4225d6
pop edi
pop esi
pop ebx
add esp, 8
ret
cmp ecx, 0x2e
jne 0x422741
push 0x14
call fcn.0046f1fb
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 0x4226db
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 0x422661
cmp byte [eax], 0x5c
jne 0x422739
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x422737
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x422717
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x42272c
cmp cl, 0x29
je 0x42272c
mov ecx, eax
test bl, 0x10
jne 0x422737
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x42272c
mov edx, ecx
cmp bl, 0x7d
jne 0x422737
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x422661
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x422661
cmp ecx, 0x5c
jne 0x4228f0
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x422797
cmp byte [eax], cl
jne 0x422794
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x422792
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x422778
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x42278d
cmp cl, 0x29
je 0x42278d
mov ecx, eax
test bl, 0x10
jne 0x422792
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x42278d
mov edx, ecx
cmp bl, 0x7d
jne 0x422792
lea eax, [edx + 1]
jmp 0x422794
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00421230
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x422878
cmp byte [esi + 0x48], 0x62
jne 0x422878
push 0x14
call fcn.0046f1fb
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 0x422804
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 0x422aea
cmp byte [eax], 0x5c
jne 0x422869
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x422867
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x422840
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x422855
cmp cl, 0x29
je 0x422855
mov ecx, eax
test bl, 0x10
jne 0x422867
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x422855
mov edx, ecx
cmp bl, 0x7d
jne 0x422867
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.00421230
jmp 0x42266f
mov eax, ecx
inc eax
mov ecx, esi
mov dword [esi], eax
call fcn.00421230
jmp 0x42266f
test eax, eax
je 0x4228e4
cmp byte [esi + 0x48], 0x42
jne 0x4228e4
push 0x14
call fcn.0046f1fb
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 0x4228d0
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 0x422ab0
mov ecx, esi
call fcn.004236a0
jmp 0x422668
cmp ecx, 0x5b
jne 0x42298e
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x422933
cmp byte [eax], 0x5c
jne 0x422931
inc eax
cmp eax, ecx
je 0x422931
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x422920
mov cl, byte [eax]
cmp cl, 0x28
je 0x42292f
cmp cl, 0x29
je 0x42292f
test dl, 0x10
jne 0x422931
mov al, byte [eax]
cmp al, 0x7b
je 0x42292f
cmp al, 0x7d
jne 0x422931
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00421230
mov ecx, esi
call fcn.00423570
cmp dword [esi + 0x4c], 0x5d
jne 0x422b39
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x422661
cmp byte [eax], 0x5c
jne 0x42265f
inc eax
cmp eax, ecx
je 0x42265f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x422986
mov dl, byte [eax]
cmp dl, 0x28
je 0x42265d
cmp dl, 0x29
je 0x42265d
test cl, 0x10
jmp 0x422651
cmp ecx, 0x28
jne 0x422a39
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4229d1
cmp byte [eax], 0x5c
jne 0x4229cf
inc eax
cmp eax, ecx
je 0x4229cf
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4229be
mov dl, byte [eax]
cmp dl, 0x28
je 0x4229cd
cmp dl, 0x29
je 0x4229cd
test cl, 0x10
jne 0x4229cf
mov al, byte [eax]
cmp al, 0x7b
je 0x4229cd
cmp al, 0x7d
jne 0x4229cf
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00421230
mov ecx, esi
call fcn.004237e0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x422b32
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x422a25
cmp byte [eax], 0x5c
jne 0x422a23
inc eax
cmp eax, ecx
je 0x422a23
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x422a12
mov dl, byte [eax]
cmp dl, 0x28
je 0x422a21
cmp dl, 0x29
je 0x422a21
test cl, 0x10
jne 0x422a23
mov al, byte [eax]
cmp al, 0x7b
je 0x422a21
cmp al, 0x7d
jne 0x422a23
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00421230
test bl, bl
je 0x42266f
jmp 0x422668
cmp ecx, 0x5e
jne 0x422a50
push 0x14
call fcn.0046f1fb
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x422a69
cmp ecx, 0x24
jne 0x422af6
push 0x14
call fcn.0046f1fb
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 0x422aa7
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 0x422aea
cmp byte [eax], 0x5c
jne 0x422ae8
inc eax
cmp eax, ecx
je 0x422ae8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x422ad7
mov dl, byte [eax]
cmp dl, 0x28
je 0x422ae6
cmp dl, 0x29
je 0x422ae6
test cl, 0x10
jne 0x422ae8
mov al, byte [eax]
cmp al, 0x7b
je 0x422ae6
cmp al, 0x7d
jne 0x422ae8
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00421230
jmp 0x42266f
cmp ecx, 0x2a
je 0x422b24
cmp ecx, 0x2b
je 0x422b24
cmp ecx, 0x3f
je 0x422b24
cmp ecx, 0x7b
je 0x422b24
cmp ecx, 0x7d
jne 0x422607
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x422b2b
jmp 0x42261b
push 0xa
call fcn.00421220
push 6
call fcn.00421220
push 5
call fcn.00421220
push 4
call fcn.00421220
int3