Function at 0x420090
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 0x420150
nop dword [eax + eax]
cmp eax, 0x7c
je 0x420150
cmp eax, 0x29
jne 0x420158
cmp dword [esi + 0x10], 0
jne 0x420150
test dword [esi + 0x50], 0x10000000
je 0x42052f
cmp eax, 0x5d
jne 0x4200eb
test dword [esi + 0x50], 0x10000000
je 0x420521
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.004215b0
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x420134
cmp byte [eax], 0x5c
jne 0x420132
inc eax
cmp eax, ecx
je 0x420132
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x42011f
mov dl, byte [eax]
cmp dl, 0x28
je 0x420130
cmp dl, 0x29
je 0x420130
test cl, 0x10
jne 0x420132
mov cl, byte [eax]
cmp cl, 0x7b
je 0x420130
cmp cl, 0x7d
jne 0x420132
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0041ed10
mov ecx, esi
call fcn.00421380
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x4200b0
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x2e
jne 0x4201b8
push 0x14
call fcn.0042455e
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 0x4201ad
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
jmp 0x4200f8
cmp eax, 0x5c
jne 0x420324
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4201fd
cmp byte [eax], 0x5c
jne 0x4201fb
inc eax
cmp eax, ecx
je 0x4201fb
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4201e8
mov dl, byte [eax]
cmp dl, 0x28
je 0x4201f9
cmp dl, 0x29
je 0x4201f9
test cl, 0x10
jne 0x4201fb
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4201f9
cmp cl, 0x7d
jne 0x4201fb
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0041ed10
test byte [esi + 0x50], 0x80
je 0x420318
cmp byte [esi + 0x48], 0x62
jne 0x4202b1
push 0x14
call fcn.0042455e
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 0x420268
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 0x4204e3
cmp byte [eax], 0x5c
jne 0x4204e1
inc eax
cmp eax, ecx
je 0x4204e1
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x4202a9
mov cl, byte [eax]
cmp cl, 0x28
je 0x4204df
cmp cl, 0x29
je 0x4204df
test dl, 0x10
jmp 0x4204d1
cmp byte [esi + 0x48], 0x42
jne 0x420318
push 0x14
call fcn.0042455e
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 0x420307
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
jmp 0x42026e
mov ecx, esi
call fcn.00421070
jmp 0x42013b
cmp eax, 0x5b
jne 0x420382
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x420365
cmp byte [eax], 0x5c
jne 0x420363
inc eax
cmp eax, ecx
je 0x420363
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x420350
mov dl, byte [eax]
cmp dl, 0x28
je 0x420361
cmp dl, 0x29
je 0x420361
test cl, 0x10
jne 0x420363
mov cl, byte [eax]
cmp cl, 0x7b
je 0x420361
cmp cl, 0x7d
jne 0x420363
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0041ed10
mov ecx, esi
call fcn.00420f50
cmp dword [esi + 0x4c], 0x5d
jne 0x420521
jmp 0x4200f8
cmp eax, 0x28
jne 0x420431
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4203c7
cmp byte [eax], 0x5c
jne 0x4203c5
inc eax
cmp eax, ecx
je 0x4203c5
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4203b2
mov dl, byte [eax]
cmp dl, 0x28
je 0x4203c3
cmp dl, 0x29
je 0x4203c3
test cl, 0x10
jne 0x4203c5
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4203c3
cmp cl, 0x7d
jne 0x4203c5
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0041ed10
mov ecx, esi
call fcn.004211c0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x42052f
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x42041d
cmp byte [eax], 0x5c
jne 0x42041b
inc eax
cmp eax, ecx
je 0x42041b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x420408
mov dl, byte [eax]
cmp dl, 0x28
je 0x420419
cmp dl, 0x29
je 0x420419
test cl, 0x10
jne 0x42041b
mov cl, byte [eax]
cmp cl, 0x7b
je 0x420419
cmp cl, 0x7d
jne 0x42041b
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0041ed10
test bl, bl
je 0x420142
jmp 0x42013b
cmp eax, 0x5e
jne 0x420448
push 0x14
call fcn.0042455e
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x420461
cmp eax, 0x24
jne 0x4204ef
push 0x14
call fcn.0042455e
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 edx, dword [eax + 0xc]
test edx, edx
je 0x4204a1
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 ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x4204e3
cmp byte [eax], 0x5c
jne 0x4204e1
inc eax
cmp eax, ecx
je 0x4204e1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4204ce
mov dl, byte [eax]
cmp dl, 0x28
je 0x4204df
cmp dl, 0x29
je 0x4204df
test cl, 0x10
jne 0x4204e1
mov cl, byte [eax]
cmp cl, 0x7b
je 0x4204df
cmp cl, 0x7d
jne 0x4204e1
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0041ed10
jmp 0x420142
cmp eax, 0x2a
je 0x42051a
cmp eax, 0x2b
je 0x42051a
cmp eax, 0x3f
je 0x42051a
cmp eax, 0x7b
je 0x42051a
cmp eax, 0x7d
jne 0x4200d9
test dword [esi + 0x50], 0x10000000
je 0x420528
jmp 0x4200eb
push 0xa
call fcn.0041ed00
push 4
call fcn.0041ed00
push 6
call fcn.0041ed00
push 5
call fcn.0041ed00
int3