Function at 0x421f50
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e07d8
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push esi
push edi
mov eax, dword [0x524a60]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x14], esi
xor edx, edx
mov dword [ebp - 0x24], vtable.CBufferT_unsigned_short_int_.0
xor eax, eax
mov dword [ebp - 0x1c], edx
xor edi, edi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], edi
mov dword [ebp - 4], edi
nop word [eax + eax]
movzx ecx, word [esi + 0x90]
mov edx, ecx
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x1c]
test cx, cx
jne 0x421fc1
cmp dword [esi + 0x94], 1
je 0x422274
cmp dword [esi + 0x94], 0
jne 0x4220c4
movzx ecx, word [esi + 0xa0]
cmp ecx, 0x7b
jne 0x421fe7
cmp dword [esi + 0xa4], 1
je 0x42224a
cmp ecx, 0x3f
jne 0x421ff9
cmp dword [esi + 0xa4], 1
je 0x42224a
cmp ecx, 0x2a
jne 0x42200b
cmp dword [esi + 0xa4], 1
je 0x42224a
cmp ecx, 0x2b
jne 0x42201d
cmp dword [esi + 0xa4], 1
je 0x42224a
mov ecx, dword [ebp - 0x10]
cmp eax, 8
movzx ecx, cx
mov dword [ebp - 0x10], ecx
mov ecx, eax
mov eax, 8
cmovl ecx, eax
lea eax, [edx + 2]
cmp eax, ecx
lea edi, [ecx + ecx]
cmovle edi, ecx
cmp eax, edi
jle 0x422055
lea edi, [edx + 0xd]
mov eax, edi
and eax, 0x80000007
jns 0x422053
dec eax
or eax, 0xfffffff8
inc eax
sub edi, eax
cmp edi, dword [ebp - 0x18]
jle 0x422073
lea eax, [edi + edi]
push eax
mov eax, dword [ebp - 0x20]
push eax
call fcn.004b961c
mov edx, dword [ebp - 0x1c]
add esp, 8
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov word [edi + edx*2], ax
inc edx
xor eax, eax
mov dword [ebp - 0x1c], edx
mov word [edi + edx*2], ax
movups xmm0, xmmword [esi + 0x90]
movups xmmword [esi + 0x80], xmm0
movups xmm0, xmmword [esi + 0xa0]
movups xmmword [esi + 0x90], xmm0
movups xmm0, xmmword [esi + 0xb0]
movups xmmword [esi + 0xa0], xmm0
mov ecx, esi
call fcn.00422fb0
test eax, eax
je 0x4220b1
mov eax, dword [ebp - 0x18]
jmp 0x421fa0
cmp dword [esi + 0x94], 1
jne 0x421fa0
mov eax, ecx
cmp eax, 0x29
je 0x422274
cmp eax, 0x7c
je 0x422274
test edx, edx
jg 0x42227c
cmp eax, 0x28
je 0x42232f
cmp eax, 0x5b
je 0x422323
cmp eax, 0x2e
je 0x422323
cmp eax, 0x77
je 0x422323
cmp eax, 0x57
je 0x422323
cmp eax, 0x73
je 0x422323
cmp eax, 0x53
je 0x422323
cmp eax, 0x64
je 0x422323
cmp eax, 0x44
je 0x422323
cmp eax, 0x5e
je 0x422317
cmp eax, 0x24
je 0x422317
cmp eax, 0x41
je 0x422317
cmp eax, 0x5a
je 0x422317
cmp eax, 0x7a
je 0x422317
cmp eax, 0x62
je 0x422317
cmp eax, 0x42
je 0x422317
cmp eax, 0x47
je 0x422317
cmp eax, 0x5c
je 0x42230b
cmp eax, 0x6b
je 0x42230b
cmp eax, 0x67
je 0x42230b
movzx eax, word [esi + 0x90]
mov ecx, dword [ebp - 0x18]
cmp ecx, 8
mov dword [ebp - 0x10], eax
mov eax, 8
cmovl ecx, eax
lea eax, [edx + 2]
cmp eax, ecx
lea edi, [ecx + ecx]
cmovle edi, ecx
cmp eax, edi
jle 0x4221db
lea edi, [edx + 0xd]
mov eax, edi
and eax, 0x80000007
jns 0x4221d9
dec eax
or eax, 0xfffffff8
inc eax
sub edi, eax
cmp edi, dword [ebp - 0x18]
jle 0x4221f9
lea eax, [edi + edi]
push eax
mov eax, dword [ebp - 0x20]
push eax
call fcn.004b961c
mov edx, dword [ebp - 0x1c]
add esp, 8
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov word [edi + edx*2], ax
inc edx
xor eax, eax
mov dword [ebp - 0x1c], edx
mov word [edi + edx*2], ax
movups xmm0, xmmword [esi + 0x90]
movups xmmword [esi + 0x80], xmm0
movups xmm0, xmmword [esi + 0xa0]
movups xmmword [esi + 0x90], xmm0
movups xmm0, xmmword [esi + 0xb0]
movups xmmword [esi + 0xa0], xmm0
mov ecx, esi
call fcn.00422fb0
test eax, eax
je 0x422237
mov eax, dword [ebp - 0x18]
jmp 0x421fa0
mov eax, dword [ebp - 0x10]
movzx eax, ax
test edx, edx
jne 0x422276
push 1
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x24]
push 1
lea eax, [ebp - 0x10]
push eax
call fcn.0041efc0
mov ecx, esi
call fcn.004267c0
mov edx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
test edx, edx
jle 0x42234a
push 0x1c
call fcn.004a12b0
mov edx, eax
add esp, 4
mov dword [ebp - 0x10], edx
test edx, edx
je 0x42233b
mov ecx, dword [ebp + 8]
test edi, edi
mov eax, dword [ebp - 0x1c]
mov esi, 0x4eefe4
cmovne esi, edi
mov edi, dword [ecx]
mov dword [edx], vtable.CStringElxT_unsigned_short_int_.0
mov dword [edx + 0xc], eax
inc eax
mov dword [edx + 0x10], eax
add eax, eax
push eax
mov dword [edx + 8], 0
mov dword [edx + 4], vtable.CBufferT_unsigned_short_int_.0
call fcn.004b7a8d
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 8], eax
mov ecx, dword [ecx + 0xc]
add ecx, ecx
push ecx
push esi
push eax
call fcn.004b0530
mov edx, dword [ebp - 0x10]
xor esi, esi
add esp, 0x10
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 8]
push edx
mov word [eax + ecx*2], si
mov eax, edi
mov esi, dword [ebp - 0x14]
and eax, 0x10
and edi, 8
mov dword [edx + 0x14], eax
mov ecx, esi
mov dword [edx + 0x18], edi
call fcn.004245d0
mov edi, dword [ebp - 0x20]
jmp 0x422353
push dword [ebp + 8]
mov ecx, esi
call fcn.0041faf0
jmp 0x422353
push dword [ebp + 8]
mov ecx, esi
call fcn.0041ffa0
jmp 0x422353
push dword [ebp + 8]
mov ecx, esi
call fcn.00420210
jmp 0x422353
push dword [ebp + 8]
mov ecx, esi
call fcn.00420b10
jmp 0x422353
xor edx, edx
mov ecx, esi
push edx
call fcn.004245d0
mov edi, dword [ebp - 0x20]
jmp 0x422353
push 0
mov ecx, esi
call fcn.004237e0
mov esi, eax
test edi, edi
je 0x422362
push edi
call fcn.004b3fc9
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4