Function at 0x403d20
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor al, al
push edi
mov ecx, dword [esi + 0x4c]
cmp ecx, 0xffffffff
je 0x404201
cmp ecx, 0x7c
je 0x404201
cmp ecx, 0x29
jne 0x403d68
cmp dword [esi + 0x10], 0
jne 0x404201
cmp ecx, ecx
jne 0x403d68
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x40420f
jmp 0x40417d
lea edi, [esi + 0x50]
cmp ecx, 0x2e
jne 0x403e12
push 0x14
call fcn.0040a8d2
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 eax, dword [eax + 0xc]
test eax, eax
je 0x403dc1
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 0x4041e5
cmp byte [eax], 0x5c
jne 0x403e0a
lea ecx, [eax + 1]
cmp ecx, edx
je 0x403e0a
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x403df7
mov al, byte [ecx]
cmp al, 0x28
je 0x403e08
cmp al, 0x29
je 0x403e08
mov eax, dword [esi]
test dl, 0x10
jne 0x403e0a
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x403e08
cmp dl, 0x7d
jne 0x403e0a
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x4041e5
cmp ecx, 0x5c
jne 0x403f92
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x403e59
cmp byte [eax], cl
jne 0x403e56
lea ecx, [eax + 1]
cmp ecx, edx
je 0x403e56
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x403e43
mov al, byte [ecx]
cmp al, 0x28
je 0x403e54
cmp al, 0x29
je 0x403e54
mov eax, dword [esi]
test dl, 0x10
jne 0x403e56
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x403e54
cmp dl, 0x7d
jne 0x403e56
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004033c0
mov eax, dword [edi]
and eax, 0x80
je 0x403f1b
cmp byte [esi + 0x48], 0x62
jne 0x403f1b
push 0x14
call fcn.0040a8d2
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 eax, dword [eax + 0xc]
test eax, eax
je 0x403ec4
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 0x40414d
cmp byte [eax], 0x5c
jne 0x403f0c
lea ecx, [eax + 1]
cmp ecx, edx
je 0x403f0c
mov edx, dword [edi]
test dl, 8
jne 0x403ef9
mov al, byte [ecx]
cmp al, 0x28
je 0x403f0a
cmp al, 0x29
je 0x403f0a
mov eax, dword [esi]
test dl, 0x10
jne 0x403f0c
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x403f0a
cmp dl, 0x7d
jne 0x403f0c
mov eax, ecx
inc eax
mov ecx, esi
mov dword [esi], eax
call fcn.004033c0
jmp 0x4041f3
test eax, eax
je 0x403f86
cmp byte [esi + 0x48], 0x42
jne 0x403f86
push 0x14
call fcn.0040a8d2
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 eax, dword [eax + 0xc]
test eax, eax
je 0x403f72
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 0x404112
mov ecx, esi
call fcn.004048e0
jmp 0x4041ec
cmp ecx, 0x5b
jne 0x403fef
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x403fd2
cmp byte [eax], 0x5c
jne 0x403fd0
inc eax
cmp eax, ecx
je 0x403fd0
mov ecx, dword [edi]
test cl, 8
jne 0x403fbd
mov dl, byte [eax]
cmp dl, 0x28
je 0x403fce
cmp dl, 0x29
je 0x403fce
test cl, 0x10
jne 0x403fd0
mov cl, byte [eax]
cmp cl, 0x7b
je 0x403fce
cmp cl, 0x7d
jne 0x403fd0
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004033c0
mov ecx, esi
call fcn.004047b0
cmp dword [esi + 0x4c], 0x5d
jne 0x404216
jmp 0x4041aa
cmp ecx, 0x28
jne 0x40409c
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x404033
cmp byte [eax], 0x5c
jne 0x404031
inc eax
cmp eax, ecx
je 0x404031
mov ecx, dword [edi]
test cl, 8
jne 0x40401e
mov dl, byte [eax]
cmp dl, 0x28
je 0x40402f
cmp dl, 0x29
je 0x40402f
test cl, 0x10
jne 0x404031
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40402f
cmp cl, 0x7d
jne 0x404031
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004033c0
mov ecx, esi
call fcn.00404a30
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x40420f
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x404088
cmp byte [eax], 0x5c
jne 0x404086
inc eax
cmp eax, ecx
je 0x404086
mov edx, dword [edi]
test dl, 8
jne 0x404073
mov cl, byte [eax]
cmp cl, 0x28
je 0x404084
cmp cl, 0x29
je 0x404084
test dl, 0x10
jne 0x404086
mov cl, byte [eax]
cmp cl, 0x7b
je 0x404084
cmp cl, 0x7d
jne 0x404086
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004033c0
test bl, bl
je 0x4041f3
jmp 0x4041ec
cmp ecx, 0x5e
jne 0x4040b3
push 0x14
call fcn.0040a8d2
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x4040cc
cmp ecx, 0x24
jne 0x404159
push 0x14
call fcn.0040a8d2
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 [ebp - 4], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x404109
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 0x40414d
cmp byte [eax], 0x5c
jne 0x40414b
inc eax
cmp eax, ecx
je 0x40414b
mov edx, dword [edi]
test dl, 8
jne 0x404138
mov cl, byte [eax]
cmp cl, 0x28
je 0x404149
cmp cl, 0x29
je 0x404149
test dl, 0x10
jne 0x40414b
mov cl, byte [eax]
cmp cl, 0x7b
je 0x404149
cmp cl, 0x7d
jne 0x40414b
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004033c0
jmp 0x4041f3
cmp ecx, 0x2a
je 0x404208
cmp ecx, 0x2b
je 0x404208
cmp ecx, 0x3f
je 0x404208
cmp ecx, 0x7b
je 0x404208
cmp ecx, 0x7d
jne 0x404190
test dword [edi], 0x10000000
je 0x40421d
jmp 0x40419d
cmp ecx, 0x5d
jne 0x40419d
test dword [edi], 0x10000000
je 0x404216
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00404e50
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x4041e5
cmp byte [eax], 0x5c
jne 0x4041e3
inc eax
cmp eax, ecx
je 0x4041e3
mov edx, dword [edi]
test dl, 8
jne 0x4041d0
mov cl, byte [eax]
cmp cl, 0x28
je 0x4041e1
cmp cl, 0x29
je 0x4041e1
test dl, 0x10
jne 0x4041e3
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4041e1
cmp cl, 0x7d
jne 0x4041e3
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.004033c0
mov ecx, esi
call fcn.00404c20
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x403d37
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.004033b0
push 5
call fcn.004033b0
push 4
call fcn.004033b0
push 6
call fcn.004033b0
int3