Function at 0x10003fd0
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 0x1000408e
cmp ecx, 0x7c
je 0x1000408e
cmp ecx, 0x29
jne 0x10004095
cmp dword [esi + 0x10], 0
jne 0x1000408e
cmp ecx, ecx
jne 0x10004095
test dword [esi + 0x50], 0x10000000
je 0x10004580
lea edi, [esi + 0x50]
cmp ecx, 0x5d
jne 0x1000402c
test dword [edi], 0x10000000
je 0x10004587
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10005360
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10004072
cmp byte [eax], 0x5c
jne 0x10004070
inc eax
cmp eax, ecx
je 0x10004070
mov edx, dword [edi]
test dl, 8
jne 0x1000405f
mov cl, byte [eax]
cmp cl, 0x28
je 0x1000406e
cmp cl, 0x29
je 0x1000406e
test dl, 0x10
jne 0x10004070
mov al, byte [eax]
cmp al, 0x7b
je 0x1000406e
cmp al, 0x7d
jne 0x10004070
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100031e0
mov ecx, esi
call fcn.10005130
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x10003fe7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x2e
jne 0x1000415e
push 0x14
call fcn.100097c8
mov ecx, eax
xorps xmm0, xmm0
add esp, 4
mov dword [ebp - 4], ecx
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
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 0x100040f8
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 0x10004072
cmp byte [eax], 0x5c
jne 0x10004156
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x10004154
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10004134
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x10004149
cmp cl, 0x29
je 0x10004149
mov ecx, eax
test bl, 0x10
jne 0x10004154
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x10004149
mov edx, ecx
cmp bl, 0x7d
jne 0x10004154
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x10004072
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x10004072
cmp ecx, 0x5c
jne 0x10004325
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x100041b4
cmp byte [eax], cl
jne 0x100041b1
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x100041af
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10004195
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x100041aa
cmp cl, 0x29
je 0x100041aa
mov ecx, eax
test bl, 0x10
jne 0x100041af
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x100041aa
mov edx, ecx
cmp bl, 0x7d
jne 0x100041af
lea eax, [edx + 1]
jmp 0x100041b1
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100031e0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x100042a1
cmp byte [esi + 0x48], 0x62
jne 0x100042a1
push 0x14
call fcn.100097c8
mov ecx, eax
xorps xmm0, xmm0
add esp, 4
mov dword [ebp - 4], ecx
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
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 0x1000422d
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 0x10004538
cmp byte [eax], 0x5c
jne 0x10004292
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x10004290
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10004269
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1000427e
cmp cl, 0x29
je 0x1000427e
mov ecx, eax
test bl, 0x10
jne 0x10004290
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1000427e
mov edx, ecx
cmp bl, 0x7d
jne 0x10004290
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.100031e0
jmp 0x10004080
mov eax, ecx
inc eax
mov ecx, esi
mov dword [esi], eax
call fcn.100031e0
jmp 0x10004080
test eax, eax
je 0x10004319
cmp byte [esi + 0x48], 0x42
jne 0x10004319
push 0x14
call fcn.100097c8
mov ecx, eax
xorps xmm0, xmm0
add esp, 4
mov dword [ebp - 4], ecx
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
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 0x10004305
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 0x100044fe
mov ecx, esi
call fcn.10004e90
jmp 0x10004079
cmp ecx, 0x5b
jne 0x100043c3
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10004368
cmp byte [eax], 0x5c
jne 0x10004366
inc eax
cmp eax, ecx
je 0x10004366
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10004355
mov cl, byte [eax]
cmp cl, 0x28
je 0x10004364
cmp cl, 0x29
je 0x10004364
test dl, 0x10
jne 0x10004366
mov al, byte [eax]
cmp al, 0x7b
je 0x10004364
cmp al, 0x7d
jne 0x10004366
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100031e0
mov ecx, esi
call fcn.10004d50
cmp dword [esi + 0x4c], 0x5d
jne 0x10004587
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10004072
cmp byte [eax], 0x5c
jne 0x10004070
inc eax
cmp eax, ecx
je 0x10004070
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100043bb
mov dl, byte [eax]
cmp dl, 0x28
je 0x1000406e
cmp dl, 0x29
je 0x1000406e
test cl, 0x10
jmp 0x10004062
cmp ecx, 0x28
jne 0x1000446e
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10004406
cmp byte [eax], 0x5c
jne 0x10004404
inc eax
cmp eax, ecx
je 0x10004404
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100043f3
mov dl, byte [eax]
cmp dl, 0x28
je 0x10004402
cmp dl, 0x29
je 0x10004402
test cl, 0x10
jne 0x10004404
mov al, byte [eax]
cmp al, 0x7b
je 0x10004402
cmp al, 0x7d
jne 0x10004404
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100031e0
mov ecx, esi
call fcn.10004fe0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x10004580
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1000445a
cmp byte [eax], 0x5c
jne 0x10004458
inc eax
cmp eax, ecx
je 0x10004458
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10004447
mov dl, byte [eax]
cmp dl, 0x28
je 0x10004456
cmp dl, 0x29
je 0x10004456
test cl, 0x10
jne 0x10004458
mov al, byte [eax]
cmp al, 0x7b
je 0x10004456
cmp al, 0x7d
jne 0x10004458
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100031e0
test bl, bl
je 0x10004080
jmp 0x10004079
cmp ecx, 0x5e
jne 0x10004492
push 0x14
call fcn.100097c8
mov ecx, eax
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], 2
jmp 0x100044b8
cmp ecx, 0x24
jne 0x10004544
push 0x14
call fcn.100097c8
mov ecx, eax
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
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 0x100044f5
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 0x10004538
cmp byte [eax], 0x5c
jne 0x10004536
inc eax
cmp eax, ecx
je 0x10004536
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10004525
mov dl, byte [eax]
cmp dl, 0x28
je 0x10004534
cmp dl, 0x29
je 0x10004534
test cl, 0x10
jne 0x10004536
mov al, byte [eax]
cmp al, 0x7b
je 0x10004534
cmp al, 0x7d
jne 0x10004536
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100031e0
jmp 0x10004080
cmp ecx, 0x2a
je 0x10004572
cmp ecx, 0x2b
je 0x10004572
cmp ecx, 0x3f
je 0x10004572
cmp ecx, 0x7b
je 0x10004572
cmp ecx, 0x7d
jne 0x10004018
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x10004579
jmp 0x1000402c
push 0xa
call fcn.100031d0
push 6
call fcn.100031d0
push 5
call fcn.100031d0
push 4
call fcn.100031d0
int3