Function at 0x10003e40
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1000430a
mov edi, 0xb2dde0
nop dword [eax]
cmp eax, 0x7c
je 0x1000430a
cmp eax, 0x29
jne 0x10003e8a
cmp dword [esi + 0x10], 0
jne 0x1000430a
test dword [esi + 0x50], 0x10000000
je 0x1000431a
jmp 0x100042a0
cmp eax, 0x2e
jne 0x10003eef
push 0x14
call edi
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
test ecx, ecx
je 0x10003ec3
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x10003ec5
xor ecx, ecx
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x10003ee4
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 0x100042ad
cmp eax, 0x5c
jne 0x1000406b
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x10003f39
cmp byte [eax], 0x5c
jne 0x10003f36
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x10003f34
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10003f23
mov bl, byte [ecx]
cmp bl, 0x28
je 0x10003f36
cmp bl, 0x29
je 0x10003f36
test dl, 0x10
jne 0x10003f34
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x10003f36
cmp cl, 0x7d
je 0x10003f36
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100034d0
test byte [esi + 0x50], 0x80
je 0x1000405f
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x10003ff7
push 0x14
call edi
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
test ecx, ecx
je 0x10003f89
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x10003f8b
xor ecx, ecx
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x10003faa
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 edx, dword [esi + 8]
cmp eax, edx
je 0x1000424a
cmp byte [eax], 0x5c
jne 0x10004247
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x10004245
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10003fef
mov dl, byte [ecx]
cmp dl, 0x28
je 0x10004247
cmp dl, 0x29
je 0x10004247
test bl, 0x10
jmp 0x10004237
cmp al, 0x42
jne 0x1000405f
push 0x14
call edi
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
test ecx, ecx
je 0x1000402f
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x10004031
xor ecx, ecx
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x10004050
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
xor dword [ecx + 8], 1
jmp 0x10003fb0
mov ecx, esi
call fcn.10004990
jmp 0x100042f5
cmp eax, 0x5b
jne 0x100040ce
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x100040b1
cmp byte [eax], 0x5c
jne 0x100040ae
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x100040ac
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1000409b
mov bl, byte [ecx]
cmp bl, 0x28
je 0x100040ae
cmp bl, 0x29
je 0x100040ae
test dl, 0x10
jne 0x100040ac
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x100040ae
cmp cl, 0x7d
je 0x100040ae
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100034d0
mov ecx, esi
call fcn.10004850
cmp dword [esi + 0x4c], 0x5d
jne 0x10004321
jmp 0x100042ad
cmp eax, 0x28
jne 0x10004187
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x10004118
cmp byte [eax], 0x5c
jne 0x10004115
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x10004113
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10004102
mov bl, byte [ecx]
cmp bl, 0x28
je 0x10004115
cmp bl, 0x29
je 0x10004115
test dl, 0x10
jne 0x10004113
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x10004115
cmp cl, 0x7d
je 0x10004115
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100034d0
mov ecx, esi
call fcn.10004ad0
cmp dword [esi + 0x4c], 0x29
mov bh, al
jne 0x1000431a
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x10004173
cmp byte [eax], 0x5c
jne 0x10004170
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x1000416e
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1000415d
mov bl, byte [ecx]
cmp bl, 0x28
je 0x10004170
cmp bl, 0x29
je 0x10004170
test dl, 0x10
jne 0x1000416e
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x10004170
cmp cl, 0x7d
je 0x10004170
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100034d0
test bh, bh
je 0x100042fc
jmp 0x100042f5
cmp eax, 0x5e
jne 0x100041a5
push 0x14
call edi
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
test ecx, ecx
je 0x100041e2
mov dword [ecx + 4], 2
jmp 0x100041c5
cmp eax, 0x24
jne 0x10004256
push 0x14
call edi
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
test ecx, ecx
je 0x100041e2
mov dword [ecx + 4], 3
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x100041e4
xor ecx, ecx
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x10004203
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 edx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, edx
je 0x1000424a
cmp byte [eax], 0x5c
jne 0x10004247
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x10004245
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10004234
mov bl, byte [ecx]
cmp bl, 0x28
je 0x10004247
cmp bl, 0x29
je 0x10004247
test dl, 0x10
jne 0x10004245
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x10004247
cmp cl, 0x7d
je 0x10004247
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100034d0
jmp 0x100042fc
cmp eax, 0x2a
je 0x10004313
cmp eax, 0x2b
je 0x10004313
cmp eax, 0x3f
je 0x10004313
cmp eax, 0x7b
je 0x10004313
cmp eax, 0x7d
jne 0x1000428e
test dword [esi + 0x50], 0x10000000
je 0x10004328
jmp 0x100042a0
cmp eax, 0x5d
jne 0x100042a0
test dword [esi + 0x50], 0x10000000
je 0x10004321
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10004ef0
mov edx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, edx
je 0x100042ee
cmp byte [eax], 0x5c
jne 0x100042eb
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x100042e9
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x100042d8
mov bl, byte [ecx]
cmp bl, 0x28
je 0x100042eb
cmp bl, 0x29
je 0x100042eb
test dl, 0x10
jne 0x100042e9
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x100042eb
cmp cl, 0x7d
je 0x100042eb
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100034d0
mov ecx, esi
call fcn.10004cd0
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x10003e60
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.100034c0
push 5
call fcn.100034c0
push 4
call fcn.100034c0
push 6
call fcn.100034c0
int3